我正在用 Spring 和 Tiles 做一个新的 webapp。到目前为止,我已经登录,创建/编辑用户工作。现在我必须从带有 json 的第三个应用程序的 Rest Controller 开始。我只需要在其余 URL 上禁用 csrf。
我尝试使用 spring 中的 XML <csrf disabled="true"/>,它可以工作,但是对于整个应用程序,有没有办法通过路径进行此配置,或者唯一的方法是用 Java 写下来?:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
}
}
这对我不起作用,我发现的每个简单示例都是相同的,并且似乎对除我之外的所有人都有效,我做错了什么?
弹簧安全配置:
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd">
<http auto-config="true">
<!-- <csrf disabled="true"/> -->
<intercept-url pattern="/" access="permitAll" />
<intercept-url pattern="/welcome" access="hasRole('ROLE_ADMIN')"/>
<!-- <intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" access="ROLE_USER,ROLE_ADMIN"/> -->
<intercept-url pattern="/administration/**" access="hasRole('ROLE_ADMIN')"/>
<form-login login-page="/login" default-target-url="/" authentication-failure-url="/login?error" username-parameter="username" password-parameter="password" />
<logout logout-success-url="/login?logout" />
</http>
一只斗牛犬
相关分类