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

403 mesmo seguindo todos os procedimentos

Olá, fiz tudo como foi pedido na aula, porém recebo o erro 403 quando disparo o postman

@Configuration
@EnableWebSecurity
public class SecurityConfigurations {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http.csrf(csrf -> csrf.ignoringRequestMatchers(toH2Console()).disable()).authorizeHttpRequests(auth -> {
            auth.requestMatchers(toH2Console()).permitAll();
            auth.requestMatchers("/login").permitAll();
        }).sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .headers(headers -> headers.frameOptions(FrameOptionsConfig::disable)).build();
    }

    @Bean
    public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration) throws Exception {
        return configuration.getAuthenticationManager();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
@RestController 
@RequestMapping("/login")
public class AutenticacaoController {
    
    @Autowired
    private AuthenticationManager manager;
    
    
    
    @PostMapping
    public ResponseEntity efetuarLogin(@RequestBody DadosAutenticacao dados) {
        var token = new UsernamePasswordAuthenticationToken(dados.login(), dados.senha());
        var authentication = manager.authenticate(token);
        return ResponseEntity.ok().build();

    }

}
@Service
public class AutenticacaoService implements UserDetailsService{
    @Autowired
    private UsuarioRepository repository;

    @Override
    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
        return repository.findByLogin(username);
    }

}
SELECT * FROM USUARIOS ;
ID  	LOGIN  	SENHA  
1	ekan@teste.com	123456
2	ekan@teste.com	$2a$10$Y50UaMFOxteibQEYLrwuHeehHYfcoafCopUazP12.rqB41bsolF5.
3	ekan@teste.com	$2a$12$PunpMrviBEOTdH25mfR6ye5nY7ic/bVTySrJyrx4mTtGVHv1Z27/q
(3 rows, 0 ms)
3 respostas

Oi!

Na sua tabela tem 3 registros com o mesmo login e isso pode estar causando o problema. Altere para que os logins sejam distintos.

Oi Cristiano! Tudo bem?

Tenta deletar seu usuário de id=1 no banco. O que pode estar acontecendo é que você está usando o encriptador pra trabalhar com as senhas, e essa senha em específico não está encriptada.

O método findByLogin traz a primeira referência com o email que ele encontra, e nesse caso é justamente a linha da tabela em que a senha não está criptografada, por isso apagar esse registro pode ajudar.

Também recomendo deixar um email diferente para cada usuário. Como você carrega os usuários com findByLogin, se os logins são os mesmos, pode ser que os usuários sejam confundidos.

Espero ter ajudado! Abraços e bons estudos!

solução!

Provavelmente era o usuário duplicado e inseri o usuário do curso e funcionou:

{
    "login": "ana.souza@voll.med",
    "senha": "123456"
}