Olá. Será que alguém pode me informar o por que do meu objeto estar vindo null para @AuthenticationPrincipal UsuarioLogado logado? Mesmo estando logado?
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.