spring - 在过滤器中获取请求标头
问题描述
我在 Spring Boot 中注册了一个过滤器,并试图从请求中获取和 Header 但得到空值。
@Component
@Order(1)
public class ExampleFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws... {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
//null**
final String header = httpServletRequest.getHeader(HEADER);
}
但
@GetMapping(value = "example")
public ResponseEntity<Example> example( @RequestHeader(HEADER) String header) {
... the header is NOT null
}
解决方案
请在此处查看我的示例
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CustomFilter implements Filter {
public CustomFilter() {
}
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
HttpServletRequest httpRequest = (HttpServletRequest) request;
Enumeration<String> headerNames = httpRequest.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
System.out.println("Header: " + name + " value:" + httpRequest.getHeader(name));
}
}
chain.doFilter(req, res);
}
@Override
public void init(FilterConfig filterConfig) {
}
@Override
public void destroy() {
}
}
推荐阅读
- python - Google Cloud 上的 TensorFlow 问题
- php - PHP:找到递归函数的最短解决方案
- javascript - 从多维数组jquery中获取值
- jenkins - Git插件没有注入环境变量
- azure - 如何通过 Azure 门户更改 Azure 函数的日志记录详细程度?
- ruby-on-rails - 如何在 rails 视图中访问 render :layout 选项?
- .net - 使用 ADFS 注销 .net 核心项目
- c++ - 如何与 ActiveX exe 通信
- javascript - 护照本地策略不适用于 React
- windows - 如何使用 for /f 在“当前”行暂停