login JSP con la sicurezza dichiarativa - Come avviene la vera autenticazione?
-
26-09-2019 - |
Domanda
Sono stato un po 'perplesso con questo come non ho visto molti esempi che mi ha dato il quadro completo. La spiegazione migliore che ho trovato finora è questo .
Con la definizione di un ruolo di sicurezza in web.xml come "admin", per esempio, e avere il mio modulo di accesso con tutti i campi necessari (cioè j_security_check come azione, e campi j_username, j_password), come / dove fa la vera autenticazione verificarsi?
ho in programma di utilizzare un'autenticazione personalizzata utilizzando le password username / (hash) memorizzati nel database. Quando l'utente invia il form, come faccio a rendere il Java EE Web Container invoke mio metodo sevlet / fagiolo fare eseguire l'autenticazione reale? Non ho notato alcun posto per aggiungere un gancio per il mio codice in web.xml, che avrebbe fatto la vera autenticazione.
Soluzione
Con la definizione di un ruolo di sicurezza in web.xml come "admin", per esempio, e avere il mio modulo di accesso con tutti i campi necessari (cioè j_security_check come azione, e campi j_username, j_password), come / dove fa la vera autenticazione verificarsi?
Per l'attuazione servlet, il servletcontainer. In Tomcat per esempio, è fatta dal AuthenticatorBase
codice della classe (fonte qui ).
ho in programma di utilizzare un'autenticazione personalizzata utilizzando le password username / (hash) memorizzati nel database. Quando l'utente invia il form, come faccio a rendere il Java EE Web Container invoke mio metodo sevlet / fagiolo fare eseguire l'autenticazione reale? Non ho notato alcun posto per aggiungere un gancio per il mio codice in web.xml, che avrebbe fatto la vera autenticazione.
Se vuoi continuare a utilizzare l'autenticazione contenitore gestito, ma invece desidera controllare l'accesso in un database, allora avete bisogno di configurare il cosiddetto "regno" di conseguenza. Non è chiaro che servletcontainer si sta utilizzando, ma per esempio in Tomcat, la documentazione è disponibile qui: Tomcat 6.0 Realm HOW-TO .
Se si vuole veramente avere il proprio sistema di autenticazione homegrown invocato, invece, allora avete bisogno di far cadere la sicurezza gestita contenitore e homegrow ulteriormente. che non è raccomandato .
Altri suggerimenti
reale di autenticazione sta facendo via o due modi:
- Via modo server proprietario, per esempio le * LoginModules in JBoss, Tomcat o uno BalusC menzionato. Questi sono diversi per ogni server.
- Via JASPIC, che è stato introdotto in Java EE 6.
JASPIC praticamente ha standardizzato i metodi proprietari, ma è un basso livello di API in modo equo e purtroppo disponibile solo per il suo profilo completo Java EE 6 e 7 implementazioni.
implementare l'autenticazione contenitore in Java EE con JASPIC per maggiori dettagli.