apache / apache/apisix-java-plugin-runner
request help: 插件获取ext-plugin-post-resp获取请求响应码为0
- Lenguaje dominante
- Java
- Estrellas
- 152
- Forks
- 102
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
### Issue description
只配置了自定义插件apisix-java-plugin-runner,使用request.getVars("status")获取到的响应码为0,期望获取的是200,应该怎么获取正确的响应码?
### Environment
APISIX version:3.2
apisix-java-plugin-runner version:0.4.0
### plugin config
"plugins": {
"ext-plugin-post-resp": {
"allow_degradation": true,
"conf": [{
"name": "ReceiveResponseFilter",
"value": "{\"appId\":\"1000\",\"validate_header\":\"cookie\",\"rejected_code\":\"403\"}"
}]
}
}
### 插件代码
@Slf4j
@Component
public class ReceiveResponseFilter implements PluginFilter {
@Override
public String name() {
return "ReceiveResponseFilter";
}
/**
* @param request
* @param response
* @param chain
*/
@Override
public void postFilter(PostRequest request, PostResponse response, PluginFilterChain chain) {
String configStr = request.getConfig(this);
Gson gson = new Gson();
Map conf = new HashMap<>();
conf = gson.fromJson(configStr, conf.getClass());
try {
String appId = String.valueOf(conf.get("appId"));
log.info("ReceiveResponseFilter appId {}", appId);
byte[] bodyBytes = request.getBody().getBytes(StandardCharsets.ISO_8859_1);
String responseBody = new String(bodyBytes, StandardCharsets.UTF_8);
log.info("responseBody----- {}", responseBody);
String requestVarsHost = request.getVars("host");
String uri = request.getVars("uri");
String request_method = request.getVars("request_method");
String remote_addr = request.getVars("remote_addr");
String http_cookie = request.getVars("http_cookie");
String status = request.getVars("status");
log.info("requestVars host {}", requestVarsHost);
log.info("requestVars uri {}", uri);
log.info("requestVars request_method {}", request_method);
log.info("requestVars remote_addr {}", remote_addr);
log.info("requestVars http_cookie {}", http_cookie);
log.info("requestVars status {}", status);
Integer upstreamStatusCode = request.getUpstreamStatusCode();
log.info("upstreamStatusCode {}", upstreamStatusCode);
} catch (Exception e) {
log.info("ReceiveResponseFilter error {}", ExceptionUtil.stacktraceToString(e));
}
chain.postFilter(request, response);
}
@Override
public List requiredVars() {
List requiredVars = new ArrayList<>();
requiredVars.add("host");
requiredVars.add("uri");
requiredVars.add("request_method");
requiredVars.add("remote_addr");
requiredVars.add("http_cookie");
requiredVars.add("status");
return requiredVars;
}
@Override
public Boolean requiredRespBody() {
return true;
}
}
### 正常请求结果
requestVars status 0
upstreamStatusCode 13
### 失败请求结果
requestVars status 0
upstreamStatusCode 13
### 预期结果
正常获取请求返回的成功/失败响应码
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Evaluación
Este issue todavía no se ha evaluado.