Я собираю простой сайт, используя 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.