Comment stocker des informations personnalisées dans SecurityContext de printemps-sécurité?
Dans mon application j'utilise l'authentification LDAP. Mais je suis également 2 des services à distance qui nécessite une authentification via la méthode login(nom d'utilisateur, mot de passe). La méthode retourne un jeton de sécurité qui me rend capable d'invoquer un autre des méthodes, c'est à dire je dois passer jeton de sécurité pour les méthodes du service en tant que premier argument.
J'aimerais donc obtenir ces jetons de sécurité immédiatement après la connexion réussie, à l'aide de LDAP et de les stocker dans SecurityContext. J'ai essayé d'utiliser authentification-succès-gestionnaire-ref de form-login élément. En utilisant le gestionnaire d'-je remplacer Authentification objet dans le SecurityContext personnalisé AuthenticationToken qui détient non seulement le mot de passe mais également des jetons de sécurité. Mais dans ce cas j'ai une exception qui n'fournisseur d'authentification prend en charge cette catégorie de jeton.
Je sais qu'il est également possible de stocker des jetons dans la session HTTP, mais dans ce cas je passe de session pour objet de service, donc je voudrais stocker les jetons dans SecurityContext.
Quelle est la meilleure approche pour gérer les service d'émission de jeton de sécurité?
Vous devez vous connecter pour publier un commentaire.
J'utilise souvent le
Authentication.getDetails()
objet pour stocker des informations supplémentaires qui peuvent ne pas être directement lié à l'utilisateur par dire. Ainsi, vous pouvez stocker n'importe quel objet que vous voulez dans ce domaine (une table de hachage par exemple), et il partage laAuthentication
objet du cycle de vie.Votre mise en œuvre de la "UserDetails' peut détenir des données supplémentaires. C'est ce qui est stocké dans la SecurityContext qui est ensuite accessible après connexion réussie.
Plus tard, vous pourrez y accéder en tant que (ce qui Suppose que MyUserDetails implémente UserDetails)