为什么Spring Security在所有形式的帖子中总是以403 Forbidden进行响应?

时间:2019-06-09 02:39:40

标签: java spring-security

我正在使用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相关的基本弹簧安全配置方面寻求任何帮助。

1 个答案:

答案 0 :(得分:0)

实施WebSecurityConfigurer而不是WebMvcConfigurer

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurer {
}