You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by "Cheol-Soon-Choi (via GitHub)" <gi...@apache.org> on 2023/07/17 00:52:58 UTC
[GitHub] [apisix-java-plugin-runner] Cheol-Soon-Choi commented on issue #255: request help: I want to check in ext-plugin-post-resp plugin according to upstream response status.
Cheol-Soon-Choi commented on issue #255:
URL: https://github.com/apache/apisix-java-plugin-runner/issues/255#issuecomment-1637243514
my Route info
```
{
"uri": "/bodybody*",
"name": "test1234",
"methods": [
"GET",
"POST"
],
"plugins": {
"ext-plugin-post-resp": {
"_meta": {
"disable": false
},
"allow_degradation": false,
"conf": [
{
"name": "Test_Gateway",
"value": "{\"rejected_body2\":\"failed\",\"rejected_code2\":\"403\"}"
}
]
}
},
"upstream": {
"nodes": [
{
"host": "127.0.0.1",
"port": 8080,
"weight": 1
}
],
"timeout": {
"connect": 6,
"send": 6,
"read": 6
},
"type": "roundrobin",
"scheme": "http",
"pass_host": "pass",
"keepalive_pool": {
"idle_timeout": 60,
"requests": 1000,
"size": 320
}
},
"status": 1
}
```
my filter info
```
@Override
public void filter(HttpRequest request, HttpResponse response, PluginFilterChain chain) {
// get conf of current filter
String configStr = request.getConfig(this);
Gson gson = new Gson();
Map<String, Object> conf = new HashMap<>();
// convert according to the actual configured conf type
conf = gson.fromJson(configStr, conf.getClass());
String k1 = request.getVars("uri");
String endP = k1.split("/")[1];
log.info("nginx_uri: " + k1);
log.info("is_args: " + request.getVars("is_args"));
chain.filter(request, response);
}
@Override
public void postFilter(PostRequest request, PostResponse response, PluginFilterChain chain) {
log.info("--------------------post filter start------------11111111");
// log.info(request.getUpstreamHeaders().toString());
log.info(request.getUpstreamStatusCode().toString());
log.info(request.getBody());
log.info("--------------------post filter end------------11111111");
chain.postFilter(request, response);
}
@Override
public List<String> requiredVars() {
List<String> vars = new ArrayList<>();
return vars;
}
@Override
public Boolean requiredBody() {
return true;
}
@Override
public Boolean requiredRespBody() {
return true;
}
```
my upstream(127.0.0.1:8080) info
```
@GetMapping("/bodybody*")
public ResponseEntity fea2A2s2sbcd22d31222212d(@RequestHeader Map<String, String> headers) {
for (Map.Entry<String, String> entry : headers.entrySet()) {
System.out.println("key: " + entry.getKey() + ", value: " + entry.getValue());
}
HttpHeaders aaHeaders = new HttpHeaders();
aaHeaders.add("test", "1234");
if (headers.get("error") != null & headers.get("error").equals("400")) {
return new ResponseEntity(aaHeaders, HttpStatus.BAD_REQUEST);
} else if (headers.get("error") != null & headers.get("error").equals("500")) {
return new ResponseEntity(aaHeaders, HttpStatus.INTERNAL_SERVER_ERROR);
}
return new ResponseEntity(aaHeaders, HttpStatus.OK);
}
```
u can repro with my info @nic-chen
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@apisix.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org