我正在使用spring-boot(v2.1.3)和spring-mvc构建一个简单的网站。它运行良好,直到我通过包含spring-boot-starter-security依赖项并添加WebMvcConfigrer的实现来添加spring-security。一切都运行良好,包括默认登录和注销视图,但所有其他表单在POST上都以403-For在响应。
我看到的大部分指南都涉及csrf保护。最终,您希望在表单中包含csrf令牌,但最简单的建议是完全禁用csrf保护(http. csrf.disable())。将其添加到安全配置中没有效果。
这是我的WebMvcConfigrer实现…
@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相关的基本Spring安全配置的任何帮助。
实现WebSecurityCon一词而不是WebMvc一词
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurer {
}