Estou criando um projeto com base no do curso, de login e registro de usuário, mas esta acontecendo um erro na hora do login. Um erro 403 Forbidden. Decidi colocar alguns System.out.println para ver onde estava dando o problema.
@PostMapping("/login")
public ResponseEntity login(@RequestBody @Valid AuthenticationDTO data){
System.out.println(data); // ESSE ESTÁ APARECENDO NO CONSOLE
var usernamePassword = new UsernamePasswordAuthenticationToken(data.login(), data.password());
System.out.println(usernamePassword); // ESSE ESTÁ APARECENDO NO CONSOLE TAMBÉM
var auth = this.manager.authenticate(usernamePassword);
System.out.println(auth); // JÁ ESSE NÃO ESTÁ APARECENDO NO CONSOLE
var token = tokenService.generateToken((User) auth.getPrincipal());
System.out.println(token); // ESSE TAMBÉM NÃO
return ResponseEntity.ok(new LoginResponseDTO(token));
}
No console:
...
AuthenticationDTO[login=pedrot@hotmail.com, password=pedro1234567]
UsernamePasswordAuthenticationToken [Principal=pedrot@hotmail.com, Credentials=[PROTECTED], Authenticated=false, Details=null, Granted Authorities=[]]
Verifiquei se tinha algum erro no SecurityConfiguration, na parte da cração da função AuthenticationManager e nada:
@Bean
public AuthenticationManager authenticationManager(AuthenticationConfiguration authenticationConfiguration) throws Exception {
return authenticationConfiguration.getAuthenticationManager();
}
Verifiquei também se a url "/auth/login" estava autorizada para entrar e ela está:
return httpSecurity
.csrf(csrf -> csrf.disable())
.sessionManagement(session -> session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
.authorizeHttpRequests(authorize -> authorize
.requestMatchers(HttpMethod.POST, "/auth/register").permitAll()
.requestMatchers(HttpMethod.POST, "/auth/login").permitAll()
.anyRequest().authenticated()
)
.addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
.build();
}
A url "/auth/register" está funcionando.
Estou a um tempo quebrando a cabeça nesse problema e nada. Caso queiram ver o código por completo: https://github.com/Pedro-Thomazi/login_register_JAVA/tree/main