2010-03-19 8 views
2

Je veux savoir comment puis-je activer l'authentification par formulaire dans Java via la base de données. Après la connexion à la base de données, comment puis-je vérifier si le nom d'utilisateur et le mot de passe, que j'entre par la page html, sont corrects ou non?Authentification basée sur les formulaires en Java

Dois-je modifier les servlets d'action de j_security_check à une autre mes propres servlets définies, qui se connecteront à la base de données et effectueront toutes leurs vérifications par elles-mêmes? Ou je dois envoyer des informations d'authentification à j_security_check, qui se connectera automatiquement à la base de données, vérifier le nom d'utilisateur et mot de passe. Je réussis à me connecter à la base de données via le fichier context.xml, qui se trouve dans le répertoire META-INF de ma propre application web, mais je n'arrive pas à comprendre ce que je dois faire pour activer l'authentification basée sur les formulaires . J'utilise Tomcat 6 comme serveur web.

+0

Qu'est-ce que j_security_check? – Thilo

+0

j_security_check est l'URL utilisée pour les connexions basées sur des formulaires – Stardust

Répondre

2

Personnellement, j'utiliser un DataSourceRealm dans le context.xml de la webapp:

<Realm className="org.apache.catalina.realm.DataSourceRealm" 
     dataSourceName="jdbc/lagalerie" debug="99" localDataSource="true" 
     roleNameCol="role" userCredCol="password" userNameCol="username" 
     userRoleTable="rolemap" userTable="users" digest="md5" 
     digestEncoding="UTF-8"/> 

Et je définir la source de données dans le server.xml de tomcat (pour permettre l'utilisation de la même guerre dans des environnements différents) :

<Resource auth="Container" type="javax.sql.DataSource" name="jdbc/lagalerie" 
      driverClassName="org.postgresql.Driver" 
      url="jdbc:postgresql://localhost/lagalerie?charSet=LATIN1" 
      maxActive="100" maxIdle="30" maxWait="10000" 
      username="casashop" password="casashop"/> 

La table rolemap est en fait une vue car le modèle de base de données est différent de celui attendu par tomcat.

Questions connexes