apache / apache/apisix-java-plugin-runner
help request: How to modify request body in apisix pre-plugin (ext-plugin-pre-req)?
- 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.