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
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
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();
}