为了账号安全,请及时绑定邮箱和手机立即绑定

Spring MVC - 向所有 HTTP 响应添加自定义 CSRF 标头

Spring MVC - 向所有 HTTP 响应添加自定义 CSRF 标头

泛舟湖上清波郎朗 2021-08-25 09:44:18
在我的 Spring MVC 应用程序中,我想在带注释的控制器方法上实现一种 CSRF 标头。我已经在该HandlerInterceptorAdapter.preHandle方法上实现了 100% 工作客户端的 CSRF 标头解析器,并且我曾经尝试在同一个处理程序中为 on 内部的响应生成标头,afterCompletion因为这似乎是最适合我的地方:@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)        throws Exception {    if (handler instanceof HandlerMethod) {        HandlerMethod handlerMethod = (HandlerMethod) handler;        boolean requestCheck = handlerMethod.getMethodAnnotation(CSRF.class) != null;        if (requestCheck && handlerMethod.getMethodAnnotation(CSRF.class).response()) {            response.addHeader(payloadEncryptedHeaderName, SecureUtil.buildCsrfHeader(salt, response));        }    }    super.afterCompletion(request, response, handler, ex);}在此线程中,有人告诉我我不能使用该方法,而使用过滤器会是最好的,但我注意到doFilter...无法为响应设置标头(或者至少我找不到方法)该方法doFilter在控制器执行之前(而不是之后)被调用我真的很想深入了解如何处理这些拦截器,所以有人可以用一个例子向我解释我可以操纵它们HttpServletResponse以实现我的目标的最佳位置吗?
查看完整描述

1 回答

?
aluckdog

TA贡献1847条经验 获得超7个赞

发现我的其他线程的解决方案在这里它是使用所有abountResponseBodyAdvice为了达到我的目标。


查看完整回答
反对 回复 2021-08-25
  • 1 回答
  • 0 关注
  • 221 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信