Est-il possible d'avoir plusieurs méthodes d'authentification pour une servlet Java? Par exemple, avoir une authentification basée sur formulaire en plus de l'authentification basée sur open id afin que les utilisateurs puissent choisir comment ils se connectent.Méthodes d'authentification de plusieurs servlets Java
Répondre
Oui.
Cependant, je suggère de le faire en utilisant des filtres de servlet au lieu de sur le servlet lui-même.
http://brendangraetz.wordpress.com/2010/06/17/use-servlet-filters-for-user-authentication/
Suivez les étapes de ce poste, et remplacer la méthode isAuth()
telle qu'elle effectue l'authentification cependant de nombreux modes que vous souhaitez. En (très rugueux, non testé) Code:
@Override protected boolean isAuth()
{
String authMode = (String)(getSession(true).getAttribute("authMode"));
if (authMode == null) { return false; }
if (authMode.equals("open id") {
//do open id authentication steps here
//return true if authentication passes
}
else if (authMode.equals("some other authentication") {
//do some other authentication steps here
//return true if authentication passes
}
...
return false;
}
Je suppose bien sûr que vous savez déjà comment mettre en œuvre les étapes d'authentification dans chaque mode individuellement. La «astuce» consiste à stocker une valeur dans la session HTTP, immédiatement après que l'utilisateur a effectué l'authentification de connexion, dans la session HTTP. Basé sur cette valeur, le filtre saura ce qu'il doit vérifier ou interroger tout ce que vous spécifiez avant de charger le servlet.
Oui, c'est possible, mais cela a tendance à être un peu compliqué à implémenter. Par exemple, SpringSecurity prêt à l'emploi prend en charge l'authentification locale, OpenId, X509 et d'autres systèmes, mais en les combinant pour que l'utilisateur ait d'autres façons de se connecter nécessite des classes personnalisées et un câblage personnalisé.
Une autre façon d'effectuer une authentification multiple est de contacter JAAS, le service d'authentification et d'autorisation Java. À l'aide de JAAS, vous pouvez empiler plusieurs modules d'authentification les uns sur les autres et vous pouvez configurer le module d'authentification à exécuter ou non. C'est ce qu'on appelle PAM (module d'authentification enfichable). Recherchez "J2SE JAAS" sur Google ou jetez un oeil à http://server.pramati.com/docstore/1270002/index.htm. Ceux-ci devraient vous aider à démarrer si vous décidez d'emprunter cette route.
- 1. Modèle de threads Java Servlets
- 2. Java Logger avec Servlets
- 3. Téléchargement groupé et servlets Java
- 4. Servlets JAVA - popup de message ouvert
- 5. Navigation de produit dans les servlets Java
- 6. Problème de conception/implémentation - Java/JSP/Servlets
- 7. commande Java Servlets ligne de traitement
- 8. apache cxf: plusieurs points de terminaison ou plusieurs servlets CXFServlet?
- 9. Une ou plusieurs servlets par webapp?
- 10. HTTP PUT dans les servlets Java
- 11. Contrôleur d'erreur avec les servlets Java
- 12. Classes abstraites et servlets en Java EE
- 13. Java Servlets: String null ou "null"
- 14. Méthodes de rappel Java
- 15. servlets et fichier de ressources
- 16. Plusieurs méthodes de filtrage ModelManager
- 17. Module RADIUS pour le conteneur de servlets Java
- 18. Accès aux variables post à l'aide de servlets Java
- 19. Passer plusieurs méthodes (déléguer?)
- 20. Servlets SIP, serveur de chat
- 21. Servlets de test unitaire
- 22. Java: `Méthodes static`
- 23. Méthodes polymorphes Java
- 24. Servlets encodeRedirectURL
- 25. Veuillez clarifier quelques points concernant les servlets Java
- 26. Comment développez-vous Java Servlets à l'aide d'Eclipse?
- 27. Différences techniques entre ASP.NET et Java Servlets/JSP
- 28. réponse servlets java - rester sur la même page
- 29. Servlets et communication AJAX
- 30. Comment écrivez-vous des tests unitaires pour vos servlets java?
Super, c'est exactement ce que je cherchais! J'aurais aimé avoir assez de rep pour voter ça! – KPthunder
@KPthunder: Pas de soucis, je suis heureux que cela fonctionne pour vous! – bguiz
Peu importe, j'ai maintenant rep! – KPthunder