如何使用Javascript从SpringSecurity获取CSRF属性值?

时间:2015-06-26 18:27:39

标签: java spring spring-security

我正在尝试在Spring Security中启用csrf保护,在阅读this post之后,我提出了以下配置:

public final class CsrfTokenGeneratorFilter extends OncePerRequestFilter {
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        CsrfToken token = (CsrfToken) request.getAttribute("_csrf");
        response.setHeader("X-CSRF-HEADER", token.getHeaderName());
        response.setHeader("X-CSRF-PARAM", token.getParameterName());
        response.setHeader("X-CSRF-TOKEN", token.getToken());
        filterChain.doFilter(request, response);
    }
}

我还在spring-security xml文件中添加了以下内容:

<custom-filter ref="csrfFilter" after="CSRF_FILTER"/>
...
<beans:bean id="csrfFilter" class="com.foo.config.CsrfTokenGeneratorFilter"/>

我现在面临的问题是request.getAttribute(&#34; _csrf&#34;)总是返回一个空值。我错过了什么吗?我该如何将_csrf值添加到请求中?

我使用的是纯HTML + AJAX。

感谢。

0 个答案:

没有答案