Почему Spring Security всегда отвечает 403 Запрещено во всех формах сообщений? - PullRequest
0 голосов
/ 09 июня 2019

Я собираю простой сайт, используя spring-boot (v2.1.3) и spring-mvc. Это работало хорошо, пока я не добавил Spring-Security, включив зависимость Spring-Boot-Starter-Security и добавив реализацию WebMvcConfigurer. Все работало нормально, в том числе по умолчанию вход в систему и выход из системы, но все другие формы отвечают 403-Запрещено на POST.

Основная часть руководств, которые я видел, касается защиты 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 голосов
/ 09 июня 2019

Реализация WebSecurityConfigurer вместо WebMvcConfigurer

@Configuration
public class WebSecurityConfig extends WebSecurityConfigurer {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...