我正在使用spring-boot(v2.1.3)和spring-mvc建立一个简单的网站。直到我通过添加spring-boot-starter-security依赖项并添加WebMvcConfigurer的实现来添加spring-security之前,它一直运行良好。一切都运行良好,包括默认的登录和注销视图,但所有其他表单在POST上均以403-Forbidden响应。
我看过的大部分指南都涉及csrf保护。最终,您希望在表单中包含csrf令牌,但最简单的建议是完全禁用csrf保护(http.csrf.disable())。将其添加到安全配置中无效。
这是我的WebMvcConfigurer实现...
@EnableWebSecurity
public class WebSecurityConfig implements WebMvcConfigurer {
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.httpBasic()
.and()
.csrf().disable();
}
@Bean
public UserDetailsService userDetailsService() throws Exception {
InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
manager.createUser(User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build());
return manager;
}
}
在与表单POST相关的基本弹簧安全配置方面寻求任何帮助。
答案 0 :(得分:0)
实施WebSecurityConfigurer而不是WebMvcConfigurer
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurer {
}