bonne journée.
J'ai besoin de mettre en œuvre OAuth2 avec Spring-Security à l'aide de Springboot2 Basing sur l'URL ci-dessous. P>
Nom de l'URL: https://www.devglan.com/spring-security/ Spring-boot-oauth2-jwt-exemple p>
et je l'ai fait. P>
Ici, j'ai une autre exigence différente pour le code ci-dessus pour authentifier l'utilisateur. P>
J'ai besoin de transmettre Société avec le nom d'utilisateur et le mot de passe et à Grant_Type (mot de passe) dans l'onglet X-www-form-urlencode dans l'outil Postman. Et je dois chercher l'utilisateur basé sur le nom d'utilisateur et la société de l'entreprise. P>
Aidez-moi donc de sortir des changements que je dois faire dans le code de liaison ci-dessus afin que je puisse atteindre mes besoins. P>
ici Je n'obtiens que l'email. J'ai besoin d'email avec SeleNid. P> actuellement avec nom d'utilisateur et mot de passe, il fonctionne bien. P> mais dans mon système, j'ai le même utilisateur mappé sur Différentes entreprises.Si même utilisateur mappé sur plusieurs sociétés trouvées, j'obtiens d'une erreur comme ci-dessous. p> {
"Erreur": "non autorisé",
"Error_Description": "La requête n'a pas renvoyé un résultat unique: 2; exception imbriquée est javax.persistence.nonuniqueSultException: la requête n'a pas renvoyé un résultat unique: 2"
} p> J'ai besoin d'aller chercher l'utilisateur, basé sur le nom d'utilisateur et le mot de passe et SelectronID qui entraîne un seul utilisateur. P> Quelqu'un peut-il aider sur ce problème. Merci beaucoup à l'avance. P> p>
3 Réponses :
Si vous souhaitez des informations supplémentaires avec des jetons d'accès, vous pouvez utiliser la classe TokenenHancer pour le faire.
CustomTokenHancer.java P>
@Override public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { endpoints.authenticationManager(authenticationManager) .allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST) .tokenEnhancer(new CustomTokenEnhancer()); }
Bhanuprakash, j'ai un problème similaire mais temporaire je l'ai fait: P>
dans la méthode "LoadUserBYUSEname" Ecrivez ceci: p>
demande httpservletQuest = (((servlequestattributes) demandeContExtholder.getrequestatTtributes ())) greattQuest (); System.out.println ("compnayid:" + demande.geparamètre ("Compétence")); P> blockQuote>
Je pense qu'il y a une solution plus élégante, mais temporaire, j'ai utilisé cela. P>
merci. p>
Ce commentaire a parfaitement fonctionné pour moi! P>
demande httpServletQuest = ((servlequestattatsattributes) Demandecontextextholder.getrequestattributes ())). GeTrequest (); System.out.println ("compnayid:" + demande.geparamètre ("Compétence")); P> blockQuote>
Cela ne fournit pas de réponse à la question. Vous pouvez le laisser comme un commentaire.
Votre référentiel semble renvoyer 2 résultats au lieu de 1 (comme l'exception indique) afin que les 2 résultats ne puissent pas être mappés sur votre objet utilisateur, je suppose.