comment étendre LoginUrlAuthenticationEntryPoint ou comment mettre en œuvre AuthenticationEntryPoint
Je suis en train de le faire: Faire de la sécurité printemps ajouter le retour à l'url dans la chaîne de requête pour la page de connexion , qui est: le printemps de dire à la page de connexion où je suis venu. J'ai quelques intégration SSO.. donc je vais envoyer l'url à eux, ou ils vont ajouter le referer pour moi, donc je sais que l'utilisateur doit être enregistré et envoyé à /some/url
. C'est tout ce dandy. La question que je vais avoir est dans l'extension de la LoginUrlAuthenticationEntryPoint
(sauf si vous pouvez dites-moi une bonne raison de mettre en œuvre AuthenticationEntryPoint
à la place). J'ai besoin de modifier uniquement les demandes à la page de connexion, comme suit:
RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
//only append returnto to '/login' urls
if(request.getServletPath() == "/login") {
//indicates we want to return to this page after login
redirectStrategy.sendRedirect(request, response, "/login?returnto=" + request.getServletPath());
}
Comment puis-je laisser le reste de la demandes de faire leur chose? Ceci est incorrect (ce que je viens de faire):
RequestDispatcher dispatcher = request.getRequestDispatcher("/login");
//just forward the request
dispatcher.forward(request, response);
parce qu'elle nous met dans une boucle de redirection. Cependant, elle semble être ce qui ressort dans sa version de commencer
. Je suis confus. Que suis-je censé faire avec commence
dans mon extension à LoginUrlAuthenticationEntryPoint
?
Vous devez vous connecter pour publier un commentaire.
Pensé à elle. Juste besoin de transmettre à la page de connexion avec "retour au' ajouté. Je l'ai trouvé déroutant au premier abord, parce que
LoginUrlAuthenticationEntryPoint
ne veut pas dire "cette redirige les utilisateurs vers la page de connexion" au premier coup d'œil. C'est tout ce dont j'avais besoin:cela a été utile: LoginUrlAuthenticationEntryPoint.java sur grepcode.com
De Josh code est exactement ce que j'avais besoin de prendre l'AJAX erreurs d'authentification en JavaScript, tout en préservant la connexion par défaut logique de redirection pour toutes les autres demandes. Étant donné que toutes mes requêtes AJAX commencer par "/repos", j'ai été en mesure de filtrer sur cette.