Spring OAuth (OAuth2): Comment puis-je obtenir les informations d'identification du client dans un contrôleur Spring MVC?
Dans cet extrait de code:
@RequestMapping(method = GET)
public List<Place> read(Principal principal) {
principal.getName();
}
principal.getName()
me donne l'identification de l'utilisateur, mais j'ai besoin d'un moyen de recevoir les informations d'identification du client (client => l'application qui est à l'aide de mon API). Comment puis-je faire cela?
source d'informationauteur wandi.darko
Vous devez vous connecter pour publier un commentaire.
L'identité du client est disponible à partir de la
Authentication
objet qui vous pouvez lancer le capital, ou les obtenir directement à partir de la locale de thread contexte de sécurité. Quelque chose commeSi vous ne voulez pas mettre le code directement dans votre contrôleur, vous pouvez mettre en œuvre un contexte distinct de l'accesseur comme décrit dans cette réponse et de les injecter dans la place.
J'ai trouvé une solution raisonnable basé sur @luc-taylor réponse.
Décliner le
HandlerMethodArgumentResolver
option un peu plus. Afin de soutenir les suivantes:Nous aurons besoin de l'
HandlerMethodArgumentResolver
enregistré dans notre Contexte d'Application (pour moi, c'était à l'intérieur d'unWebMvcConfigurerAdapter
). MonHandlerMethodArgumentResolver
ressemble à ceci:Et la
@interface
définition: