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

Struts 1 Java Discussion :

[Struts]Struts et Sécurité


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut [Struts]Struts et Sécurité
    Bonjour à tous,

    Je développe une application Struts où il faut avant tout s'identifier. Je voulais savoir comment je peux empecher quelqu'un de taper l'URL (le chemin) d'une action dans la barre d'adresse dans le but de pouvoir accéder à une page sans être passé par la page de login ?
    Et cela sur TOUTE l'application.

    S'agit-il du design pattern Intercepting Filter à appliquer sur toutes les pages ? N'y a t-il pas un moyen plus simple ?


    Merci


    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre éclairé Avatar de agougeon
    Inscrit en
    Mai 2005
    Messages
    253
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 253
    Par défaut
    Bonjour, j'ai deja eu se probleme et je j'ai trouvé un truc qui peu convenir... Je passe lors de l'identification un attribut de session que je test au debut de chaque page.... session.getAttribute("MEMBRE");
    Sinon peut etre avec un tag struts... mais je n'en connai pas.

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Ben la reponse est simple, tu dois sécuriser ton application web en ajoutant des tags <security-constraint> dans ton fichier web.xml

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    En utilisant le fonction rechercher avec comme mot clé "j_security_check" , tu peux trouver plusieurs posts à ce sujet:

    En voici un:
    http://www.developpez.net/forums/vie...jsecuritycheck
    ++

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    Ok, merci beaucoup

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    hmm, bon pour l'instant, j'ai rajouté ceci dans le 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
     
    	<security-constraint>
          <display-name>Example Security Constraint</display-name>
          <web-resource-collection>
             <web-resource-name>Protected Area</web-resource-name>
        <!-- Define the context-relative URL(s) to be protected -->
             <url-pattern>/html/*</url-pattern>
        <!-- If you list http methods, only those methods are protected -->
             <http-method>GET</http-method>
             <http-method>POST</http-method>
        	  <http-method>PUT</http-method>
          </web-resource-collection>
          <auth-constraint>
             <!-- Anyone with one of the listed roles may access this area -->
             <role-name>tomcat</role-name>
          </auth-constraint>
        </security-constraint> 
        
        
        <security-role>
          <role-name>tomcat</role-name>
        </security-role>

    Mais hmm, je ne trouve pas sur le forum, dans la FAQ, ni sur Google, l'explication de A à Z du processus.
    Apres, comment je donne à quelqu'un qui se connecte, le rôle "tomcat" (rôle de test pour l'instant), et il faut que sur chacun des JSP, je mette une ligne de restriction à ce rôle ? Et comme je redirige vers l'écran de login ? Bref j'ai vu de petits morceaux un peu partout, mais je ne sais pas où les mettre et je ne sais pas si j'ai tout les éléments


    Merci

  7. #7
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Pour permettre la redirection automatique vers la page de login, il faut définir cette page dans le web.xml ainsi que la page d'erreur comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <login-config>
       <auth-method>FORM</auth-method>
       <form-login-config>
             <form-login-page>/login.jsp</form-login-page>
             <form-error-page>/loginErreur.jsp</form-error-page>
       </form-login-config>
    </login-config>
    à insérer entre les sections security-constraint et security-role.

    Pour que cela fonctionne, dans la jsp, il faut invoquer l'action j_security_check et les attributs doivent obligatoirement s'appeler j_username et j_password comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <form method="POST" name="loginForm" action="<%=response.encodeURL("j_security_check")%>">
      <input type="text" name="j_username"/></div>
      <input type="password" name="j_password"/>
      <input type="submit" value='VALIDER'/>
      <input type="reset" value='RAFRAICHIR'/>
    </form>

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    Oki merci, j'ai rajouté les infos dans le web.xml

    Mais où intervient le rôle ?

    Et puis surtout, je veux faire une action après le bouton valider qui vérifie les infos rentrer par l'utilisateur et qui le redirige vers une autre action. Comment faire ?

  9. #9
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Les roles et les users peuvent être, par exemple, définis dans une base de données (cas d'un datasource realm)??
    Si tu travailles avec Tomcat donne un coup d'oeil ici

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    Le hic, c'est que moi à la limite je ne veux pas de rôle, je veux juste que les utilisateurs passent par la page d'identification avant de surfer dans l'application. Je veux que quelqu'un qui n'a pas de login / pass ne puisse pas accéder à l'appli via l'URL d'une action.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    Bon, cela a l'air de marcher, j'ai juste mis dans le fichier web.xml les lignes que j'ai cité au dessus plus celles ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <login-config>
       <auth-method>FORM</auth-method>
       <form-login-config>
             <form-login-page>/login.jsp</form-login-page>
             <form-error-page>/loginErreur.jsp</form-error-page>
       </form-login-config>
    </login-config>
    bien que je comprenne pas encore bien le fonctionnement, cela marche
    Je vais plus me pencher sur la question.

    Merci à tous ceux qui m'ont aidé

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    mais de rien

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 136
    Par défaut
    Bonjour,
    à noter que cette solution est statique au niveau de la définition des rôles, et que la gestion des utilisateurs n'est pas portable entre différents serveurs d'applications.

    Une autre solution est l'utilisation du projet open source jGuard(www.jguard.net), qui permet une sécurisation des webapps, et une intégration de JAAS dans j2ee sans difficultés.
    cela apporte aussi une gestion dynamique des rôles, une portabilité entre les serveurs d'applications, et fournit entre autres une librairie de tags permettant d'afficher tout ou partie d'une page en fonction du profil et des rôles de l'utilisateur.

    Charles(jGuard team).

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 62
    Par défaut
    Hmm oki,


    Et une fois l'utilisateur connecté, que faut-il faire de spécial dans l'action déconnecter ? Car un httpSession.invalidate() après l'avoir récupérée ne suffit pas


    Merci

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Citation Envoyé par tibouchou
    Hmm oki,


    Et une fois l'utilisateur connecté, que faut-il faire de spécial dans l'action déconnecter ? Car un httpSession.invalidate() après l'avoir récupérée ne suffit pas


    Merci
    Je confirme que ton session invalidate() detruit la session user et de ce fait les infos de connection de ton user

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Par défaut
    Pour éviter à l'utilisateur d'accéder à une page jsp, il faut le mettre dans
    WEB-INF (Il ne peut pas accéder à ce repertoire via l'URL).

    ca oblige l'utilistateur à passer par les Action avant d'atteindre la JSP.

  17. #17
    Membre émérite

    Profil pro
    Inscrit en
    Juin 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2004
    Messages : 882
    Par défaut
    Citation Envoyé par jraselin
    Pour éviter à l'utilisateur d'accéder à une page jsp, il faut le mettre dans
    WEB-INF (Il ne peut pas accéder à ce repertoire via l'URL).

    ca oblige l'utilistateur à passer par les Action avant d'atteindre la JSP.
    +1 Tout à fait

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

Discussions similaires

  1. [Struts][struts-config.xml] question sur l element action
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/10/2004, 16h25
  2. [struts]: struts-config.xml
    Par sleepy2002 dans le forum Struts 1
    Réponses: 2
    Dernier message: 01/10/2004, 10h32
  3. Réponses: 3
    Dernier message: 02/09/2004, 11h26
  4. [struts] strategie de sécurité
    Par regis1_1 dans le forum Struts 1
    Réponses: 2
    Dernier message: 21/05/2004, 20h24
  5. [ JSP ][ Struts ] Déplacer la sécurité dans WEB-INF ?
    Par cowa dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 23/03/2004, 18h42

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