Bonjour,
J'essaie de gérer l'authentification dans mon appli JEE (base de donnée Oracle 10 et Struts 1.3.5)
Pour cela j'ai donc une jsp nommée: login.jsp
Code :
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>HIM Client Login</title>
- </head>
- <body>
- <form method="post" action="j_security_check"> Userid:
- <input type="text" name="j_username"> Password: <input type="password" name="j_password">
- <input type="submit" value="Login">
- </form>
- </body>
- </html>
|
J'ai ajouté les security constraints dans mon web.xml:
Code :
.....
<security-constraint>
<display-name>Authentification </display-name>
<!-- Liste des pages protégées -->
<web-resource-collection>
<web-resource-name>Page de recherche des organisations</web-resource-name>
<url-pattern>/jsp/*</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<!-- Rôles des utilisateurs ayant le droit d'y accéder -->
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint> </security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Default</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login_error.html</form-error-page>
</form-login-config> </login-config>
<!-- Rôles utilisés dans l'application -->
<security-role>
<description>Administrateur</description>
<role-name>admin</role-name>
</security-role>
<security-role>
<description>Utilisateur</description>
<role-name>user</role-name>
</security-role>
</web-app> ....
J'ai ajouté un fichier jboss-web.xml dans mon dossier WEB-INF:
Code :
<?xml version="1.0" encoding="UTF-8"?>
<jboss-web>
<security-domain>javajaas/RitaLogin</security-domain>
</jboss-web>
puis j'ai ajouté un Realm a la fin du fichier <Repertoire Jboss>/server/default/conf/login-config.xml :
Code :
......... <application-policy name="RitaLogin">
<authentication>
<login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required">
<module-option name="dsJndiName">javaOracleDS</module-option>
<module-option name="principalsQuery">select password from users where name=?</module-option>
<module-option name="rolesQuery">select role from roles where NAME=?</module-option>
</login-module> </authentication> </application-policy> .........
Pour info , voici le code de ma DataSource: OracleDS.xml
Code :
<?xml version="1.0" encoding="UTF-8" ?> - <datasources> - <local-tx-datasource> <jndi-name>OracleDS</jndi-name> <connection-url>jdbc:oracle:thin:@developpement-thesee.unilog.fr:1521:dthx</connection-url> <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> <user-name>FLEG</user-name> <password>FLEG</password> <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> - <metadata> <type-mapping>Oracle9i</type-mapping> </metadata> <application-managed-security /> </local-tx-datasource> </datasources>
Lorsque j'essaie d'accéder à une page protégée, l'application m'affiche bien la page de login, le problème est que quelque soit le login/pass tappé, l'appli me redirige vers la page login-error.html (même lorsque le login et le mot de passe sont valides).
Lorsque je regarde la console sur eclipse, rien n'est affiché donc je n'ai aucune info.
Lorsque je me connecte sur la base avec TOAD pour suivre en live les requètes de l'appli, je vois que mon serveur Jboss est bien connecté à l'appli mais a chaque fois que j'essaie de me logger, une erreur apparait sur TOAD:
"ORA-02404: specified plan table not found"
Et dans la dernière requête lancée par l'appli je vois:
"SELECT PASSWORD
FROM users
WHERE NAME = :1"
Voilà, j'espère avoir été clair et je vous remercie d'avance pour votre aide