提问者:小点点

为什么Spring Security总是在所有表单帖子上回复403 For不允许?


我正在使用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安全配置的任何帮助。


共1个答案

匿名用户

实现WebSecurityCon一词而不是WebMvc一词

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurer {
}