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

[Dúvida] Erro com o método securityFilterChain

Anotei o método securityFilterChain dentro da classe SecurityConfigurations da forma que foi orientada na ativade 9 - aula 5. Porém, o problema ainda persiste no meu código, veja: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeTentei também de outra forma, que ainda possuí erro no ".and()": Cannot resolve method 'and' in 'HttpSecurity Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Aqui está a solucao:

https://cursos.alura.com.br/course/spring-boot-aplique-boas-praticas-proteja-api-rest/task/130016

Com o tempo o Spring adotou o padrão builder para configurar o SecurityFilterChain

Opa Matheus, beleza?

Essa linha de código estava funcionando até o momento do curso que foi apresentado a autenticação do usuário. O problema está no código da aula 5 exercício 9

solução!

Duas coisas. Voce nao parece ter declarado totalmente o securityFilter para incluí-lo no addFilterBefore

Inclua:

    private final SecurityFilter securityFilter;

    public SecurityConfig(SecurityFilter securityFilter) {
        this.securityFilter = securityFilter;
    }

Não se usa mais o .and() no padrão novo... Vou te mostrar um exemplo de como fiz num projeto pessoal aqui essa parte, vc pode replicar aí de acordo com sua necessidade.

@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        return http
                .csrf(AbstractHttpConfigurer::disable)
                .cors(Customizer.withDefaults())
                .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .authorizeHttpRequests(req -> {
                    req.requestMatchers(HttpMethod.POST, "/api/login").permitAll();
                    req.requestMatchers(HttpMethod.POST, "/api/users").permitAll();
                    req.requestMatchers(HttpMethod.GET, "/swagger-ui/**").permitAll();
                    req.requestMatchers(HttpMethod.GET, "/v3/api-docs/**").permitAll();
                    req.anyRequest().authenticated();
                })
                .addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
                .build();
    }

Qualquer dúvida responde aqui.

Fiz da maneira que orientou e funcionou, obrigado Matheus!