Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Erro no método requestMatchers

Estou tendo um problema no final da aula com o método securityFilterChain, feito no arquivo SecurityConfigurations.java, ele da problema nos parâmetros sendo que está igual ao feito em aula... Saberiam dizer o que é?! [problema nos parâmetros] (https://cdn1.gnarususercontent.com.br/1/798050/ff861e39-a1f1-4602-b507-890fd8c3544e.png)

2 respostas
solução!

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!

Cara, se não conseguiu ainda, verifica a versão do spring que você esta usando, acho que pode ser isso. Esta usando métodos depreciados para a versão que você tem do spring.