1
resposta

Erro na criação dos filtros de segurança

Todo curso (há exceções) que faço na Alura acabo tendo problemas nas configurações.

Veja em anexo a diferença entre minhas configurações e as feitas pela "Instrutora".

Não lembro de haver qualquer comentários a respeito durante a configuração, se houver, me desculpe.

Perdemos tempo nestes casos e as vezes é só questão de orientar melhor sobre as configurações/versões das ferramentas utlizadas o que acho que é este caso.

Por favor, aguardo retorno e me desculpe.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Minha

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Instrutora.

Obrigado.

Lino.

1 resposta

Ola! a diferença não é exatamente um erro seu, mas sim mudança de API entre versões do Spring Security.

Nas versões mais recentes do Spring Security (6.x, usado com Spring Boot 3.x), o método formLogin() mudou. Ele não funciona mais no mesmo estilo das versões antigas.

No curso, provavelmente está sendo usada uma versão anterior, onde era possível fazer algo como:

http.formLogin()
    .loginPage("/login")
    .defaultSuccessUrl("/")
    .permitAll();

Já nas versões atuais, o correto é usar o Customizer, por exemplo:

@Bean
public SecurityFilterChain filtrosSeguranca(HttpSecurity http) throws Exception {
    return http
        .formLogin(form -> form
            .loginPage("/login")
            .defaultSuccessUrl("/", true)
            .permitAll()
        )
        .build();
}

Se você tentar usar a sintaxe antiga em uma versão nova, o IntelliJ vai acusar erro exatamente como aparece na sua imagem.

O que provavelmente está acontecendo no seu caso:

  • Você está com Spring Boot 3.x
  • O curso foi gravado com Spring Boot 2.x
  • A API mudou entre essas versões

Você tem duas opções:

  1. Ajustar o código para a sintaxe nova
  2. Usar no pom.xml a mesma versão do Spring Boot utilizada no curso (caso queira acompanhar exatamente igual). E eu sempre uso a MESMA versão pra não dar esses erros.