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:
- Ajustar o código para a sintaxe nova
- 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.