apache / apache/apisix-java-plugin-runner

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

Đang mở
#329 18 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Java
Star
152
Fork
102
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

### 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`):

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.