apache / apache/apisix-java-plugin-runner

help request: How to modify request body in apisix pre-plugin (ext-plugin-pre-req)?

Aperta
#329 18 commenti 0 reazioni 0 assegnatari Vedi su GitHub
bug
Lingua principale
Java
Stelle
152
Fork
102
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

### Description

在apisix路由配置中开启了ext-plugin-pre-req插件,在插件filter方法中如何修改请求体?
路由配置信息如下:
`
{
"uri": "/test-api/*",
"name": "测试api",
"desc": "测试api",
"methods": [
"GET",
"POST"
],
"plugins": {
"ext-plugin-pre-req": {
"allow_degradation": false,
"conf": [
{
"name": "AuthFilter",
"value": "authFilter"
}
],
"disable": false
}
},
"service_id": "1669247957284687873",
"labels": {
"API_VERSION": "v1"
},
"status": 1
}
`

插件执行代码如下:
`
@Component
public class AuthFilter implements PluginFilter {

private final Logger logger = LoggerFactory.getLogger(AuthFilter.class);

@Override
public String name() {
return "AuthFilter";
}

@Override
public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) {
logger.info("【进入前置拦截过滤器】");
logger.info("【获取到的请求参数】" + request.getBody());

// 在这里如何修改请求参数,重新设置请求参数到上游服务

chain.filter(request, response);
}

@Override
public void postFilter(PostRequest request, PostResponse response, PluginFilterChain chain) {
logger.info("【进入后置拦截过滤器】");
chain.postFilter(request, response);
}

@Override
public List requiredVars() {
List vars = new ArrayList<>();
vars.add("request_id");
return vars;
}

@Override
public Boolean requiredBody() {
return true;
}

@Override
public Boolean requiredRespBody() {
return true;
}
`

请各位技术老师帮忙看下,感谢!

### Environment

- APISIX version (run `apisix version`):
- Operating system (run `uname -a`):
- OpenResty / Nginx version (run `openresty -V` or `nginx -V`):
- etcd version, if relevant (run `curl http://127.0.0.1:9090/v1/server_info`):
- APISIX Dashboard version, if relevant:
- Plugin runner version, for issues related to plugin runners:
- LuaRocks version, for installation issues (run `luarocks --version`):

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.