如何修复直接写入 HTTP header 输出的 Findbugs HTTP 参数
How to fix Findbugs HTTP parameter directly written to HTTP header output
我有一个 class RequestFilter 和 @Override 方法 doFilterInternal。当我为响应添加 Header 时,findbugs 显示直接写入 HTTP header 输出的错误 HTTP 参数。那么我该如何解决这个问题呢?谢谢大家
String rqHd = request.getHeader("Access-Control-Request-Headers");
response.addHeader("Access-Control-Allow-Headers", rqHd); // findbugs error here
我认为这是 HRS_REQUEST_PARAMETER_TO_HTTP_HEADER 错误,您可以这样修复它:
String rqHd = request.getHeader("Access-Control-Request-Headers");
if(rqHd != null){
String rqHeader = URLEncoder.encode(rqHd,StandardCharsets.UTF_8.displayName());
response.addHeader("Access-Control-Allow-Headers", rqHeader);
}
如果您不想设置 ETag,请注意 header。
ETag 看起来像 W/"myetagvalue"
String etagHd = request.getHeader(HttpHeaders.ETAG);
response.addHeader(HttpHeaders.ETAG, URLEncoder.encode(etagHd,StandardCharsets.UTF_8.displayName());
将被编码W%2F%22myetagvalue%22
小心!
我有一个 class RequestFilter 和 @Override 方法 doFilterInternal。当我为响应添加 Header 时,findbugs 显示直接写入 HTTP header 输出的错误 HTTP 参数。那么我该如何解决这个问题呢?谢谢大家
String rqHd = request.getHeader("Access-Control-Request-Headers");
response.addHeader("Access-Control-Allow-Headers", rqHd); // findbugs error here
我认为这是 HRS_REQUEST_PARAMETER_TO_HTTP_HEADER 错误,您可以这样修复它:
String rqHd = request.getHeader("Access-Control-Request-Headers");
if(rqHd != null){
String rqHeader = URLEncoder.encode(rqHd,StandardCharsets.UTF_8.displayName());
response.addHeader("Access-Control-Allow-Headers", rqHeader);
}
如果您不想设置 ETag,请注意 header。 ETag 看起来像 W/"myetagvalue"
String etagHd = request.getHeader(HttpHeaders.ETAG);
response.addHeader(HttpHeaders.ETAG, URLEncoder.encode(etagHd,StandardCharsets.UTF_8.displayName());
将被编码W%2F%22myetagvalue%22
小心!