6
respostas

Erro na autorização das requisições

Bom dia, como estão? Estou tendo um problema com relação a autorização das requisições, mesmo após criar a classe Filter e atualizar o código das demais classes (TokenService e SecurityConfiguration), as requisições continuam retornando o código 403 - forbidden. Verifiquei o código das classes mas não consegui encontrar um ponto que poderia estar causando erro. Mais alguém teve esse erro? Ou sabe como posso resolve-lo?

Obrigado pela atenção.

6 respostas

Oi Mateus!

Segue essa dica para tratar mais erros e descobrir qual erro de fato está ocorrendo: https://cursos.alura.com.br/course/spring-boot-aplique-boas-praticas-proteja-api-rest/task/125341

Olá! Eu estou com o mesmo problema. Ele faz o login, mas quando testo outras requisições retorna o código 403. Tratei mais erros e ficou assim: ![](Insira aqui a descrição dessa imagem para ajudar na acessibilidade )

Melissa, altera o seu método getSubject, da classe TokenService, para imprimir na exception lançada o token que está chegando:

 } catch (JWTVerificationException exception) {
    throw new RuntimeException("Token JWT inválido ou expirado: " +tokenJWT);
}

Teste novamente e manda aqui um novo print da exception que aparece no IntelliJ

ficou assim: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeno console: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJBUEkgVm9sbC5tZWQiLCJzdWIiOiJhbmEuc291emFAdm9sbC5tZWQiLCJleHAiOjE2ODQ5NjQwMzB9.YNHJHALyBSHJSkcq1HGv4jgGMPAXatffNNmYCJMhIVs

Tem um espaço em branco antes da string do seu token.

Provavelmente seu método recuperarToken, da classe SecurityFilter, deve estar assim:

return authorizationHeader.replace("Bearer", "");

Mas precisa de um espaço em branco após a palavra Bearer:

return authorizationHeader.replace("Bearer ", "");

Era isso mesmo, eu nunca ia achar sozinha, muito obrigada!!