Visto quando cadastro um tópico,não passo aluno e quando vai detalhar dar erro de null, fiz a seguinte alteração para pegar o usuário logado no método cadastrar, isso seria uma boa prática e se não, qual seria o jeito correto.
@PostMapping
@Transactional
@CacheEvict(value = "listaDeTopicos", allEntries = true)
public ResponseEntity<TopicoDto> cadastrar(@RequestBody @Valid TopicoForm form, UriComponentsBuilder uriBuilder,
@AuthenticationPrincipal Usuario logado) {
Topico topico = form.conveter(cursoRepository,logado);
topicoRepository.save(topico);
URI uri = uriBuilder.path("/topicos/{id}").buildAndExpand(topico.getId()).toUri();
return ResponseEntity.created(uri).body(new TopicoDto(topico));
}
e no método converter
public Topico conveter(CursoRepository cursoRepository, @AuthenticationPrincipal Usuario logado) {
Curso curso = cursoRepository.findByNome(nomeCurso);
return new Topico(titulo, mensagem, curso,logado);
}