如何修复直接写入HTTP标头输出的Findbugs HTTP参数


问题内容

我有一个类RequestFilter和@Override方法doFilterInternal。当我添加Header进行响应时,findbugs会显示直接写入HTTP标头输出的错误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);
}