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

[Bug] Forbidden 403

Iniciei o curso -> (Spring Boot 3: documente, teste e prepare uma API para o deploy), quando fui lançar uma requisição para "efetuar o login" apareceu o erro Forbidden 403 no insomnia abaixo enviarei todas as evidências possíveis para resolver o problema junto o link do repositório.

Link do projeto no github: https://github.com/wbsfps/med-voll-api

Requisição no insomnia para efetuar o login

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

Imagem no mysql

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

Erro ao tentar cadastrar um médico

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

Requisição no insomnia

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

4 respostas

Oi!

Verifica se por acaso na requisição de efetuar login você está enviando algum token JWT. Nessa requisição não se deve enviar o token.

Opa professor, na aba Auth do insomnia a opção está como none estou enviando uma imagem do log da aplicação e o insomnia com a requisição. Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu olhei o código e tudo aparenta estar ok. No seu log está sendo enviado o sql para o banco, então a lógica está ok. Nesse caso em específico, somente costuma dar erro 403 se o usuário/senha estiver inválido ou não cadastrado no banco de dados.

Coloca esse try/catch no controller para pegar no log qual exception que de fato está ocorrendo:

@PostMapping
public ResponseEntity efetuarLogin(@RequestBody @Valid DadosAutenticacao dados) {
    try {
        var authenticationToken = new UsernamePasswordAuthenticationToken(dados.login(), dados.senha());
        var authentication = manager.authenticate(authenticationToken);

        var tokenJWT = tokenService.gerarToken((Usuario) authentication.getPrincipal());

        return ResponseEntity.ok(new DadosTokenJWT(tokenJWT));
    } catch(Exception e) {
        System.out.println("Dados recebidos: " +dados);
        e.printStackTrace();
        return ResponseEntity.ok("");
    }
}
solução!

Opa, professor inseri uma nova migration enviando outro usuário e voltou a funcionar agradeço o feedback!