我参考了以下关于csrf configuration的Spring Security文档。
csrf令牌的默认标头名称似乎是: X-CSRF-TOKEN
如文档中所述:
<meta name="_csrf" content="${_csrf.token}"/>
<!-- default header name is X-CSRF-TOKEN -->
<meta name="_csrf_header" content="${_csrf.headerName}"/>
似乎AngularJs使用以下标题名称: X-XSRF-TOKEN
答案 0 :(得分:4)
您可以创建自己的HttpSessionCsrfTokenRepository
bean实例,在此实例上设置属性headerName
,并将对此实例的引用传递给CSRF配置<security:csrf token-repository-ref="..." />
。例如,
<bean id="csrfTokenRepository" class="org.springframework.security.web.csrf.HttpSessionCsrfTokenRepository">
<property name="headerName" value="X-SECURITY" />
</bean>
<security:http>
<security:csrf token-repository-ref="csrfTokenRepository" />
</security:http>