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

Servlets/JSP Java Discussion :

[JSP][Servlet][Securité] Configuration du login


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Par défaut [JSP][Servlet][Securité] Configuration du login
    bonjour a tous,

    Voila, j'ai mis en place une authentifiacation par anuaire ldap sur une application existante.
    pour cela j'ai configuré le fichier web.xml en suivant le tuto suivant :

    http://www-106.ibm.com/developerwork...tra/mitra.html

    La page de login marche super bien.
    seulement si je met directement l'url de la page sur laquelle on accede normalement apres le login, la page s'affiche sans que je soit logé.

    comment faire pour plus que ca puisse s'affiché sans qu'on se soit logé ?
    faut il faire une liste des pages qu'on veut protegé quelque part ?
    ou mettre un script dans l'entete de chaque page et/ou servelet ?

    je vous serais extremment reconnaissant si vous me repondiez car je suis bien embeté.

  2. #2
    Membre expérimenté
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Par défaut
    ca peut etre a cause de ta declaration dans le web.xml

    est ce que tu peux poster
    - l'url de ta page de login
    - l'url de ta page apres login
    - tes declarations <security-constraints>

  3. #3
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Par défaut
    Biensur ,

    la page de login :
    http://localhost:9080/chrisn/
    qui a pour effet d'ouvrir la page d'acceuil par defaut : index.html

    index.html appelle tout de suite la sevlet : TestServlet
    et la aparait automatiquement la page de login : login.jsp
    et seulement apres avoir été corectement authentifié le code contenu dans TestServlet s'execute.

    le code de TestServlet consiste simplement a afficher la page du menu de l'aplication :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	public void doGet(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    		PrintWriter writer = new PrintWriter(resp.getOutputStream());
    		writer.print("<BODY onload=\"location.href='servlet/Index?login=" + req.getRemoteUser() + "'\"></BODY>");
    		writer.close();
    	}
    en tapant directement l'url : http://localhost:9080/chrisn/servlet...in=Utilisateur
    la page est affiché alors que ca ne devrait pas l'etre.


    en ce qui concerne le fichier web.xml voila en gros comment il est constitué :
    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
    57
    58
    59
    60
    61
    <?xml version="1.0" encoding="UTF-8"?>
    <!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 id="WebApp">
    	<display-name>CHRIS Negoce</display-name>
    .
    .
    .
    	<servlet>
    		<servlet-name>TestServlet</servlet-name>
    		<display-name>TestServlet</display-name>
    		<servlet-class>com.test.TestServlet</servlet-class>
    		<security-role-ref>
    			<description></description>
    			<role-name>ValidUser</role-name>
    			<role-link>ValidUser</role-link>
    		</security-role-ref>
    	</servlet>
    .
    .
    .
    	<servlet-mapping>
    		<servlet-name>TestServlet</servlet-name>
    		<url-pattern>/TestServlet</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    	</welcome-file-list>
    	<error-page>
    		<error-code>403</error-code>
    		<location>/error403.html</location>
    	</error-page>
    .
    .
    .
    	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>ressources</web-resource-name>
    			<description></description>
    			<url-pattern>/TestServlet</url-pattern>
    			<http-method>
    			GET</http-method>
    			<http-method>
    			POST</http-method>
    		</web-resource-collection>
    		<auth-constraint>
    			<description>ValidUser</description>
    			<role-name>ValidUser</role-name>
    		</auth-constraint>
    	</security-constraint>
    	<login-config>
    		<auth-method>FORM</auth-method>
    		<form-login-config>
    			<form-login-page>/login.jsp</form-login-page>
    			<form-error-page>/login.jsp?error=1</form-error-page>
    		</form-login-config>
    	</login-config>
    	<security-role>
    		<description></description>
    		<role-name>ValidUser</role-name>
    	</security-role>
    </web-app>

  4. #4
    Membre expérimenté
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Par défaut
    OK

    La fenetre de login n'est lancee par le serveur que lorsque tu accedes a l'URL definie dans ta security-constraint.

    D'apres ton web.xml, la fenetre de login ne sera donc lancee par le serveur que lorsque tu accederas a l'URL http://localhost:9080/chrisn/TestServlet.

    Si tu veux que toute ton appli soit protegee par un login, il faut que tu declares ton url-pattern de cette facon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <url-pattern>/*</url-pattern>
    Ainsi, quelque soit la page a laquelle tu accedes, tu devras t'authentifier

  5. #5
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Par défaut
    je te remerci infiniment dude pour ton aide. ca marche parfaitement

    il me reste une derniere question :
    A quoi sert de definir le role de securité au niveau de la sevlet ?
    comme dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       <servlet> 
          <servlet-name>TestServlet</servlet-name> 
          <display-name>TestServlet</display-name> 
          <servlet-class>com.test.TestServlet</servlet-class> 
          <security-role-ref> 
             <description></description> 
             <role-name>ValidUser</role-name> 
             <role-link>ValidUser</role-link> 
          </security-role-ref> 
       </servlet>
    au quel cas dois je le rajouter au niveau de chaque servlet ?

  6. #6
    Membre expérimenté
    Inscrit en
    Juillet 2004
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 152
    Par défaut
    parce qu'une fois que l'utilisateur a ete identifiee par l'appli, tu peux restreindre l'acces en fonction du role de cet utilisateur.

    Dans le bout de code que tu as mis, tu donnes a la servlet correspondante une reference vers un role applicatif. Ca n'est utile que si tu utilises la methode HttpServletRequest.isUserInRole("ValidUser") dans le code de ta servlet

  7. #7
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2003
    Messages : 29
    Par défaut
    Encore une fois merci pour toutes ces precisions. Grace a toi j'y vois un peut plus claire dans tous ca.

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

Discussions similaires

  1. [configuration] JBoss 4.0.2 avec EJB, JNDI, JSP/Servlets
    Par ran_hery dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 28/08/2006, 14h49
  2. [JSP/Servlet] Outils pour developper?
    Par BenoitM dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 04/05/2004, 11h03
  3. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55
  4. [JSP][Servlet][Javabean] Modèle Vue Controleur
    Par ay_pepito dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/02/2004, 10h05
  5. [JSP][SERVLET] recup donnees form
    Par 74greg dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 04/09/2003, 10h22

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