1
resposta

Recuperar Usuário logado

Eu tenho que testar um controller só que para acessar o controller eu preciso estar autenticado no sistema pois o controller que eu quero testar é changePassword, então obviamente, eu preciso estar logado para poder acessar. Só que eu não consigo mandar a requisição por que me retorna um forbidden , então eu tenho que dar algum jeito de no método de teste injetar um usuário logado e não dar forbidden mais. Obs : eu estou utilizando autorização stateless, no mesmo que você usa no curso de Spring Boot , autenticação via token...

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

1 resposta

Oi Victor,

No método do controller você deve receber o usuário anotado com @AuthenticationPrincipal, que o Spring injeta automaticamente o usuário logado. Algo como:

@PutMapping
public ResponseEntity alterarSenha(@RequestBody @Valid ChangePasswordDTO dto, @AuthenticationPrincipal Usuario logado) {
    //logica para alterar senha...
}

E no seu teste você precisa primeiro realizar a autenticação, para pegar o token, e enviar o token como header na requisição de alterar a senha.