Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como fazer uma autenticação mais precisa

Como posso puxar o token do usuario no controller para verificar se o topico que ele vai fechar é dele mesmo, no caso do projeto qualquer usuario pode fechar qualquer topico

1 resposta
solução!

Oi Guilherme,

Isso seria uma validação de segurança, que por sinal é muito importante.

Uma maneira de validar seria injetando o usuário logado no controller e comparando se ele é de fato o "dono" do tópico:

@PutMapping("/{id}/fechar")
@Transactional
public ResponseEntity<?> fecharTopico(@PathVariable Long id, @AuthenticationPrincipal Usuario logado) {
    Topico topico = topicoRepository.getOne(id);
    if (!topico.getUsuario().equals(logado)) {
        return ResponseEntity.status(HttpStatus.FORBIDDEN);
    }

    topico.fechar();
    return ResponseEntity.ok();
}