Probleme de login avec DataSourceRealm
Bonjour,
je voudrai sécuriser une web-app sous tomcat (6.0.16), j'utilise donc un DataSourceRealm et compagnie (bon ok je vous montre le code ce sera plus clair que moi):
mon_appli.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
<Context
path="/monappli"
reloadable="true"
docBase="blabla\monappli"
workDir="blabla\monappli\work">
<Resource
name="jdbc/monappliDB"
auth="Container"
type="javax.sql.DataSource"
username="login"
password="password"
driverClassName="oracle.jdbc.driver.OracleDriver"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:oracle:thin:@monserveur:1521:mabase"
/>
<Realm
className="org.apache.catalina.realm.DataSourceRealm"
dataSourceName="jdbc/monappliDB"
userTable="UTILISATEUR" userNameCol="LOGIN" userCredCol="MOTDEPASSE"
userRoleTable="ROLE_UTILISATEUR" roleNameCol="ROLE_NAME"
localDataSource="true"
debug="99"
/>
<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBPool_log"
suffix=".log"
timestamp="true"/>
</Context> |
web.xml:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
<!DOCTYPE web-app PUBLIC
'-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<description>Sécurité</description>
<security-constraint>
<display-name>Sécurité sous Tomcat</display-name>
<!--<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint> -->
<web-resource-collection>
<web-resource-name>Ressource protégée</web-resource-name>
<url-pattern>/jsp*</url-pattern>
<url-pattern>/Accueil</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<role-name>admin</role-name>
<role-name>user</role-name>
</security-role>
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/WEB-INF/jsp/login.jsp</form-login-page>
<form-error-page>/WEB-INF/jsp/error.jsp</form-error-page>
</form-login-config>
</login-config>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/monappliDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<servlet>
<servlet-name>accueil</servlet-name>
<servlet-class>com.appli.monappli.Accueil</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>accueil</servlet-name>
<url-pattern>/Accueil</url-pattern>
</servlet-mapping>
</web-app> |
Le datasource monappliDB marche dans les servlets, et elle marche probablement aussi dans l'authentification car si je fais une faute de frappe dans les colonnes il me renvoie une exception.
Le probleme est que le login me renvoie toujours vers la page error.jsp, même si je suis certain de mes logins et mots de passe.
Le deuxieme probleme est que je n'ai aucun retour à ce sujet! rien dans la console, rien dans les logs, donc comment comprendre l'erreur?
Une idée?