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

JSF Java Discussion :

[JSF] sécuriser une application


Sujet :

JSF Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut [JSF] sécuriser une application
    Bonjour,

    Je crée une application JSF sur laquelle on doit se connecter par login - mot de passe. La page d'accueil de cette application demande donc ces paramètres.

    Cependant, si l'utilisateur rentre directement l'url d'une autre page de l'application sans passer par l'authentification, il peut voir cette page sans problème.

    Je ne sais pas si c'est vraiment un problème JSF, mais j'aimerais que ce ne soit pas possible d'attaquer des pages de mon application directement à partir des urls (peut-être en redirigeant l'utilisateur vers la page d'authentification s'il n'est pas connecté...).

    Je ne sais pas comment faire ça, merci beaucoup de votre aide!

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Si tu n'utilise pas Facelets, tu peux juste mettre les jsp dans le web-inf, elles ne seront pas accessibles directement, sinon, il existe trois façons de sécuriser l'application web:

    1- sécurité basé sur le serveur d'application, avec tomcat, il faut définir les security constraints.

    2- Utiliser la sécurité J2EE: JAAS

    3- Utiliser un framework qui gère la sécurité: spring security ou autres

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    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 482
    Par défaut
    Le plus simple est d'utiliser l'authentficiation du conteneur, via les sections security-constraint .

    tu trouvera un exemple ici

    http://beuss.developpez.com/tutoriel...on/formulaire/

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut
    Ok, merci pour ces réponses rapides!

    Je voudrais, dans un premier temps, juste cacher mes jsp dans le WEB-INF, mais pour cela il faut que je change les chemin dans le web.xml et le faces-config.

    J'ai un peu du mal avec ça, j'ai essayé plusieurs chemins mais sans succès.
    J'ai mis mes jsp dans le répertoire: WEB-INF/jspPages.

    Voilà ce que j'essaie de faire dans mon faces-config:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <navigation-rule>
    		<from-view-id>/VueConnexion.jsp</from-view-id>
    		<navigation-case>
    			<description>Authentification incorrecte</description>
    			<from-outcome>erreur</from-outcome>
    			<to-view-id>/VueConnexion.jsp</to-view-id>
    		</navigation-case>
    		<navigation-case>
    			<description>Authentification correcte</description>
    			<from-outcome>OK</from-outcome>
    			<to-view-id>/ViewChoice.jsp</to-view-id>
    		</navigation-case>
    	</navigation-rule>
    Et voilà une partie de mon 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
     
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
     
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.jsf</url-pattern>
      </servlet-mapping>
     
      <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>/faces/*</url-pattern>
      </servlet-mapping>
    Je ne vois pas trop quoi changer pour ne pas avoir des erreurs 404. Est-ce-qu'il faut changer un servlet-mapping dans le web.xml?

    Merci pour vos réponses!

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    mettre le bon url dans les navigation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <to-view-id>WEB-INF/VueConnexion.jsp</to-view-id>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 65
    Par défaut
    En fait, je pense plutôt que ce serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <to-view-id>WEB-INF/jspPages/VueConnexion.jsp</to-view-id>
    Mais même en mettant des "/", "./" ou "../", j'ai toujours des erreurs 404.

    L'url que j'obtiens dans le navigateur est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8080/dataEntry//WEB-INF/jspPages/VueConnexion.jsf;jsessionid=E655A5111D978D3080A638BBACC5B7E9
    Je ne comprends pas quel chemin il faut lui donner.

    Merci pour votre aide!

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    tu ne tape pas l'url directement dans le navigateur?
    il faut avoir la première page de login accessible à tous, donc, pas dans le web-inf et ensuite suivre la navigation.

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

Discussions similaires

  1. sécuriser une application jsf
    Par rmougali dans le forum JSF
    Réponses: 5
    Dernier message: 25/12/2009, 12h11
  2. Réponses: 4
    Dernier message: 23/06/2008, 11h45
  3. Sécuriser une application
    Par k_boy dans le forum Outils
    Réponses: 4
    Dernier message: 16/04/2008, 01h40
  4. Sécuriser une application Access partagé sur réseau
    Par hnb2003 dans le forum Sécurité
    Réponses: 2
    Dernier message: 16/03/2006, 18h10

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