È possibile avere più metodi di autenticazione per un servlet Java? Ad esempio, si dispone dell'autenticazione basata su modulo oltre all'autenticazione basata su open id in modo che gli utenti possano scegliere come accedere.Metodi di autenticazione di più servlet java
risposta
Sì.
Tuttavia, suggerirei di farlo utilizzando i filtri del servlet anziché sul servlet stesso.
http://brendangraetz.wordpress.com/2010/06/17/use-servlet-filters-for-user-authentication/
Seguire la procedura in questo post, e l'override del metodo isAuth()
tale che esegue l'autenticazione a tuttavia molte modalità che si desidera. Nel codice (molto approssimativa, non testata):
@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;
}
Io parto dal presupposto, naturalmente, che già sapete come implementare le fasi di autenticazione in ciascuna modalità singolarmente.
Il "trucco" consiste nel memorizzare un valore nella sessione HTTP, immediatamente dopo che l'utente esegue l'autenticazione di accesso, nella sessione HTTP. Sulla base di questo valore, il filtro saprà cosa deve controllare o interrogare qualsiasi cosa venga specificata prima di caricare il servlet.
Sì, è possibile, ma tende ad essere un po 'complicato da implementare.
Ad esempio, SpringSecurity supporta prontamente l'autenticazione locale, OpenId, X509 e altri schemi, ma combinandoli in modo che l'utente disponga di modi alternativi di accesso richiede classi personalizzate e collegamenti personalizzati.
Un altro modo per eseguire l'autenticazione multipla è con JAAS, il servizio di autenticazione e autorizzazione Java. Utilizzando JAAS, puoi impilare vari moduli di autenticazione uno sopra l'altro e puoi configurare quale modulo di autenticazione eseguire e quale no. Questo è chiamato PAM (modulo di autenticazione pluggable). Cerca "J2SE JAAS" su Google o dai un'occhiata a http://server.pramati.com/docstore/1270002/index.htm. Questi dovrebbero aiutarti a iniziare se decidi di seguire questa strada.
- 1. Autenticazione modulo standard Servlet Java
- 2. PostgreSQL metodi di autenticazione multipli
- 3. Come consentire più metodi di autenticazione in ASP.NET?
- 4. Parametri di init comuni in web.xml per più servlet java?
- 5. Problema di reindirizzamento filtro servlet Java
- 6. Modello di threading Java Servlet
- 7. Calling più metodi in Java
- 8. Autenticazione reciproca client Ottieni certificato in servlet
- 9. Cloudera Manager Autenticazione fallita: metodi di autenticazione disponibili esauriti
- 10. net.schmizz.sshj.userauth.UserAuthException: Exhausted metodi di autenticazione disponibili
- 11. determinazione dei metodi di autenticazione http web
- 12. Java Spring Security config - più provider di autenticazione
- 13. ExecutorService in Java Servlet
- 14. Metodi di serializzazione Java
- 15. Problema di autenticazione ldap Java
- 16. Servlet che gestisce più richieste di post
- 17. CXF e più servlet mapping
- 18. Metodi di Java e funzioni
- 19. Esegui più metodi java main in eclissi
- 20. Java Servlet NIO su file
- 21. Java/servlet: get sql.Date attuale
- 22. Autenticazione Java contro Active Directory, mancata corrispondenza di autenticazione?
- 23. Servlet del tunnel HTTP (Java)
- 24. Autenticazione LDAP con Java
- 25. SpecFlow - Ordinamento di più metodi di BeforeScenario
- 26. Servlet sembra gestire simultaneamente più richieste di browser simultanee
- 27. Metodi di fabbrica statici in java efficace
- 28. Più sessioni di autenticazione in Laravel 4
- 29. Opzione di autenticazione Java Web Start
- 30. SSO Java: autenticazione Kerberos contro Active Directory
Impressionante, questo è esattamente quello che stavo cercando! Mi piacerebbe avere un rappresentante sufficiente per votare! – KPthunder
@KPthunder: Non preoccuparti, sono felice che funzioni per te! – bguiz
Non importa, ora ho un rappresentante! – KPthunder