Olá, Marco!
Pelo que entendi, você está tendo um problema com o método securityFilterChain
no arquivo SecurityConfigurations.java
, certo? Esse método está dando erro nos parâmetros, mesmo estando igual ao que foi feito na aula.
Parece que o problema pode estar na ordem de aplicação dos filtros. O Spring está executando primeiro o filtro dele, em vez do filtro que você configurou. Para resolver isso, você precisa determinar a ordem de aplicação dos filtros.
Você pode fazer essa alteração na classe SecurityConfigurations.java
, abaixo do .anyRequest().authenticated()
, adicionando o método .and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.
Além disso, você precisa injetar a classe SecurityFilter
acima do @Bean
, utilizando @Autowired
. Ficaria assim:
@Autowired
private SecurityFilter securityFilter;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
return http.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and().authorizeHttpRequests()
.requestMatchers(HttpMethod.POST, "/login").permitAll()
.anyRequest().authenticated()
.and().addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
Depois de fazer essa alteração e salvar o arquivo, limpe o console e tente disparar a requisição novamente. Agora deverá funcionar corretamente, retornando o código "200".
Bons estudos!