Comment faire pour automatiquement vous connecter en tant qu'utilisateur à l'aide de Printemps de Sécurité sans connaître son mot de passe?
Mon application utilise le Printemps de Sécurité, et mon client exige:
- utilisateurs d'être en mesure de session automatiquement après l'inscription.
- un administrateur pour vous connecter en tant qu'utilisateur sans connaître son mot de passe.
Donc j'ai besoin de comprendre comment se connecter en tant qu'utilisateur automatiquement sans connaître son mot de passe.
Comment cela peut-il être accompli à l'aide de Printemps de Sécurité?
Vous devez vous connecter pour publier un commentaire.
Pour obtenir que cela fonctionne, j'ai dû:
Configurer une référence à la UserDetailsService (jdbcUserService)
Autowire mon userDetailsManager dans mon controller:
Dans le même contrôleur, authentifier mes utilisateurs comme:
Notez qu'un bon précurseur juste à l'aide de printemps de sécurité pour votre application peuvent être trouvés ici.
request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, SecurityContextHolder.getContext());
pour le deuxième problème
vous devez utiliser la fonction de changement d'utilisateur à partir du printemps. javadoc et l'article
C'est la réponse à la question ci-dessus
Dans Le Contrôleur:
Plus de méthode ci-dessus dans le contrôleur est défini comme:
Autres réponses ne l'a pas conseillé de mettre en try/catch donc on ne voit pas pourquoi la logique n'est pas de travail que le code s'exécute...et il n'y a rien ni d'erreur ou d'exception sur console. Donc, si vous avez l'habitude de le mettre dans le try catch vous n'exception des informations d'identification incorrectes.