IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Tuto tomcat a lire + question


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Par défaut Tuto tomcat a lire + question
    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.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 483
    Par défaut
    En J2EE, on ne peux *pas* pointer directement le browser sur la page de login! Donc pour t'authentifier, faut le pointer sur une zone qui requiert une authenticiation (présence d'un security-constraint pour cette url). C'est tomcat qui va rediriger le browser vers la fenêtre de login et ensuite le ramener vers la page demandée quand le login aura réussi.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 53
    Par défaut
    merci ...

  4. #4
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Par défaut
    Bonsoir, j’ai suivi les étapes de yalah et le cours de developpez.com (Mise en place d'une authentification via un formulaire sous Tomcat)

    1.Sous "Web-Inf" de mon application j’ai crée un répertoire
    "admin" dont j’ai crée la page "admin.jsp":
    2.Dans le meme repertoire "Web-Inf" j’ai crée les page suivantes "login.jsp" et "erreur.jsp":

    login.jsp:
    =======
    <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>

    3. maintenant c’est configurer le fichier "web.xml" situé 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>

    4.
    ---> dans le repertoire lib de tomcate 6 (ou common/lib d'autre version) j’ai mis le driver d’oracle
    ----> dans le fichier "server.xml" situer dans le répertoire "conf" de tomcat chercher le code suivant :
    ....
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
    resourceName="UserDatabase"/>
    ....

    au dessous mettez le code suivant pour Oracle :

    <Realm className="org.apache.catalina.realm.JDBCRealm" connectionName="HR" connectionPassword="system" connectionURL="jdbc:oracle:thin:@localhost:1521:XE" driverName="oracle.jdbc.driver.OracleDriver" roleNameCol="role" userCredCol="password" userNameCol="name" userRoleTable="roles" userTable="users"/>

    5. pour accéder a la page sécurisée admin.jsp j’ai tapé:

    login:test
    mot de passe:test

    Le problème : j’ai le message suivant
    Etat HTTP 400 - Référence directe à la form de connexion (form login page) invalide
    ________________________________________
    type Rapport d'état
    message Référence directe à la form de connexion (form login page) invalide
    description La requête envoyée par le client était syntaxiquement incorrecte (Référence directe à la form de connexion (form login page) invalide).
    ________________________________________
    Apache Tomcat/6.0.29
    Y-a t il qulqu'un qui peut m'aider SVP

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 22
    Par défaut
    Bonsoir,

    l'erreur maintenant est
    type Rapport d'état

    message L'accès à la ressource demandée a été interdit

    description L'accès à la ressource demandée (L'accès à la ressource demandée a été interdit) a été interdit.

    comment puis-je accéder a ma ressource sachant que le nom d'utilisateur et le mot de passe sont correctes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 06/12/2013, 11h24
  2. [WTP]Questions WTP 1.0.1 et Tomcat
    Par estar dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/03/2006, 11h00
  3. [Servlet - Tomcat] Help - question d'un vrai débutant
    Par ShinJava dans le forum Tomcat et TomEE
    Réponses: 13
    Dernier message: 05/10/2004, 17h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo