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:
web.xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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?
Partager