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.

È stato utile?

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:

  1. Via modo server proprietario, per esempio le * LoginModules in JBoss, Tomcat o uno BalusC menzionato. Questi sono diversi per ogni server.
  2. 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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top