Fala dev!
Durante o curso, o Spring Boot teve atualizações, conforme foi informado numa das Atividades. Eu segui o curso fielmente em relação a versão do Spring Boot e inclusive as nomenclaturas de métodos, classes...
Ao atualizar o Spring Boot para a versão 3.2.1 e também atualizar a classe "SecurityConfigurations" para aplicar o novo método no return do "SecurityFilterChain", a aplicação só dava erro.
Método sugerido:
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return
http.csrf(csrf -> csrf.disable())
.sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(req -> {
req.requestMatchers("/login").permitAll();
req.anyRequest().authenticated();
})
.build();
}
Método que funcionou:
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeHttpRequests()
.antMatchers(HttpMethod.POST, "/login").permitAll()
.anyRequest().authenticated()
.and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
Sim, eu sei que o "correto" é o método que foi sugerido, mas o mais correto é o que funciona. hahaha Parece que o 'requestMatcher' tem que "combinar" com o que estamos chamando.