bonjour, je vois dans le forum que pas mal de personne on un problem de mis en place d'une athentification via un formulaire sous tomcate voila donc la solution pas a pas:
=============
-1- cree une databs que vous nomer "test"
-2- executer le script suivant:
CREATE TABLE users (
name VARCHAR(32),
password VARCHAR(32)
);
CREATE TABLE roles (
name VARCHAR(32),
role VARCHAR(32)
);
insert into users values("test", "test");
insert into users values("test2", "test2");
insert into roles values("test", "admin");
insert into roles values("test2", "manager");
-3- cree un web projet que vous nomez "Test"
ensuite sous "WebRoot" de ton application cree un repertoire que cous nomez
"admin" dont vous cree la page suivant "admin.jsp":

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'admin.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
This is my JSP page non autoriser pour les accees direct
sauf si vous avez authantifier dan ma base. <br>
</body>
</html>

-4- dans le meme repertoire "WebRoot" vous crez les page suivant "login.jsp" et "erreur.jsp":

<head><title>Authentication Page</title></head>
<body>
<center><h2>Please log in to view the customer
database</h2><br/><br/>
<form method="POST" action="j_security_check">
<table><tr><td>Username: <input type="text" size="15"
maxlength="32" name="j_username">
</td></tr><tr><td>
Password: <input type="password" size="15" maxlength="32"
name="j_password">
</td></tr><tr>
<td><input value="Login" type="submit">&nbsp;&nbsp;&nbsp;
<input value="Clear" type="reset"></td>
</tr></table></form></center>
</body>


erreur.jsp:
=======

<head><title>Authentification Error!</title></head>
<body>
<center><h1>Erreur ressayer!</h1><br/><br/>
<a href="javascript:history.back(1)">Try again?</a></center>
</body>


-5- mainteneant vous configurez le fichier "web.xml" situer dans "WEB-INF" comme suite:

web.xml:
=======

<security-constraint>
<display-name>Test d'authentification tomcat</display-name>
<!-- Liste des pages protégées -->
<web-resource-collection>
<web-resource-name>Page sécurisée</web-resource-name>
<url-pattern>/admin/*</url-pattern>
</web-resource-collection>
<!-- Rôles des utilisateurs ayant le droit d'y accéder -->
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<!-- Type d'authentification -->
<auth-method>FORM</auth-method>
<realm-name>Espace membres</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/erreur.jsp</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>


-6- la configuration de notre application est terminer ,mais il est indisponsable de mettre
-----> le driver de la connexion du sgbd utiliser dans le repertoire "WEB-INF\lib" ensuite les jars necessairent (commons...)au developpement web et n'oublier pas le fichier "log4j.properties"(a mettre dans "src"):

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout
log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=info
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=info
### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug
### log cache activity ###
log4j.logger.org.hibernate.cache=info
### log transaction activity
#log4j.logger.org.hibernate.transaction=debug
### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug
### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace
-7- nous allons maintenant configurer tomcate:
---> dans le repertoire lib de tomcate 6 (ou common/lib d'autre version) mettez le driver de la connexion du sgbd utiliser
----> dans le fichier "server.xml" situer dans le repertoire "conf" de tomcat chercher le code suivant :
....
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>

....

au dessous mettez le code suivant pour Mysql (a vous de configurer de la meme maniere si vous utilisez un autre sgbd):

<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
driverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost/test"
connectionName="root" connectionPassword="root"
userTable="users" userNameCol="name" userCredCol="password"
userRoleTable="roles" roleNameCol="role"

/>


-8- deployer ,lancer tomcat et tappez l'URL suivant:
http://127.0.0.1:8086/Authantification/admin/admin.jsp

pour acceder a la page securiser admin.jsp taper:

login:test
mot de passe:test

si vous essayez avec un autre login et mot de passe vous redirigez vers la page d'erreur.jsp

Qestion:
========================
-pour le moment tous va bien mais j'ai des petites question que j'arrive pas a resolus:

1- si vous tapez l'URL suivant :

http://127.0.0.1:8086/Authantification/login.jsp

meme si le mot de passe et login sont valide j'arrive pas a acceder a la page
http://127.0.0.1:8086/Authantification/admin/admin.jsp

y-a-t-il une configuration pour ca?
-2- quand j'ai mis le realm ci dessus dans tomcat j'arrive pas a entrer dans le server de ce dernier par le mot de passe "admin" que j'ai par defaut.