有没有办法通过XML配置在spring security中禁用CSRF令牌? 我只看到java配置在线..基于xml的例子。使用spring framework 4.0
答案 0 :(得分:35)
从Spring Security 4.0开始,默认情况下启用CSRF保护 XML配置。如果你想禁用CSRF保护,那么 相应的XML配置如下所示。
<http> <!-- ... --> <csrf disabled="true"/> </http>
默认情况下,使用Java配置启用CSRF保护。如果你 想要禁用CSRF,相应的Java配置即可 见下文。有关其他信息,请参阅csrf()的Javadoc 有关如何配置CSRF保护的自定义。
@EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable(); } }
见下面的链接 http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#csrf-configure
答案 1 :(得分:7)
在context.xml中,假设您有安全性的xsd声明:
xmlns:security="http://www.springframework.org/schema/security",
在<security:http>
元素内添加
<security:csrf disabled="true"/>
答案 2 :(得分:2)
对于初学者,如果您正在关注Spring MVC初学者指南,那么请在security-context.xml
文件中添加csrf disabled="true"
行:
<security:http auto-config="true">
<security:intercept-url pattern="/products/add"
access="ROLE_ADMIN" />
<security:form-login login-page="/login"
default-target-url="/products/add"
authentication-failure-url="/loginfailed" />
<security:logout logout-success-url="/logout" />
<security:csrf disabled="true" />
</security:http>