我需要创建一个过滤器并修改请求对象中设置的标头值。我们如何使用过滤器修改请求对象中的标头?请求对象中没有可用的 setHeader 方法。
问问题
14643 次
2 回答
4
您可以使用javax.servlet.http.HttpServletRequestWrapper
包装HttpServletRequest
服务器传递的对象。
在包装类中,您需要覆盖getHeader
方法并返回标头的修改值。
您可以在此处参考类似的帖子Modify request parameter with servlet filter
于 2013-03-08T13:19:54.973 回答
-1
您可以使用导入收集器
导入 java.util.stream.Collectors;
将以下方法添加到您的类中。
private Map<String, String> convertHeadersToLowerCase(Map<String, String> headers) {
return headers
.entrySet()
.stream()
.collect(Collectors.toMap(entry -> entry.getKey().toLowerCase(), entry -> entry.getValue()));
}
然后在响应中返回标头之前,您应该确保它们在返回之前通过将以下内容添加到您的 Response 方法的 Controller 中进行转换:
requestHeaders = convertRequestHeadersToLowerCase(requestHeaders);
于 2019-01-21T11:10:14.887 回答