Olá. Será que alguém pode me informar o por que do meu objeto estar vindo null para @AuthenticationPrincipal UsuarioLogado logado? Mesmo estando logado?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá. Será que alguém pode me informar o por que do meu objeto estar vindo null para @AuthenticationPrincipal UsuarioLogado logado? Mesmo estando logado?
O meu chute é que você ta recebendo como argumento um tipo incompatível com sua classe que representa o usuário... Se você trocar o tipo do parâmetro para Object, ainda vem null?
Olá Alberto, Vendo a sua sugestão troquei o tipo do método de ResponseEntity para Object e os dados vieram. Sabe o por que disso?
Opa, que bom. O parâmetro precisa ser compatível com a interface UserDetails.
Por que explicar melhor ou enviar um link para eu tirar essa dúvida?
Nessa método o objeto do usuário esta vindo nulo: @RequestMapping(value = "listAll{id}", method = { RequestMethod.GET, RequestMethod.POST }, produces = "application/json") public @ResponseBody Object getListReceitas(HttpServletRequest request, @PathVariable("id") Long id, @AuthenticationPrincipal UsuarioLogado logado) { System.out.println("Usuário (" + logado.getId() + ").");}
Olá amigo, já passei por isso também.
Acontece que o Spring tenta fazer uma reflection e dar bind nos valores. Por mais que posssa haver polimorfismo, quando declaramos:
@AuthenticationPrincipal usuario u
Neste caso não se aplica o polimorfismo, logo os valores não conseguirão dar bind e virão objetos nulos. Uma solução: declare todos os tipos possiveis, exemplo:
metodo (@AuthenticationPrincipal usuarioAdm uAdm, @AuthenticationPrincipal usuarioAdm2 uAdm2, @AuthenticationPrincipal usuarioAdm3 uAdm3)
Então verifique se eles estão nulos para saber com qual menipular.