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 :

Protéger page JSF contre accès direct sans autorisation


Sujet :

JSF Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 14
    Points
    14
    Par défaut Protéger page JSF contre accès direct sans autorisation
    Je vais me lancer dans ma première application JSF. Je vais devoir gérer plusieurs types d'utilisateurs qui auront des droits différents. Par exemple l'administrateur, mais pas les autres utilisateurs, pourra avoir accès à certaines pages. Il y aura environ 3 ou 4 types/rôles d'utilisateurs.

    Avec tous les exemples que j'ai trouvés je ne devrais pas avoir de problème pour la page de login. Mon problème est de savoir quelle est la meilleure solution avec JSF pour protéger les pages contre un accès direct (pour éviter un accès sans passer par la page de login ou par un utilisateur qui n'aurait pas les bons droits).

    J'ai vu qu'on pouvait utiliser des filtres de servlet. Est-ce qu'il existe d'autres solutions, et surtout, pouvez-vous me donner des références où je pourrais trouver ces solutions implémentées sur des exemples ?

    Merci d'avance pour vos réponses.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    172
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 172
    Points : 100
    Points
    100
    Par défaut
    L'utilisation des servlet filters me semble tout à fait appropriée ici.

    Pour trouver des exemples, ton ami google est là
    Avec "servlet filter login", tu peux notamment tomber sur cet article qui me semble répondre à tes besoins :
    http://www.developer.com/java/ent/article.php/3467801

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut
    tu peux aussi utiliser la sécurité gérée par le conteneur
    tu définit les roles autorisés à accéder à un url dans ton web.xml, la manière dont l'utilisateur fournira les info de login et la manière dont le serveur ira chercher les autorisations
    regarde du coté de JAAS

  4. #4
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    http://blogs.sun.com/roller/page/ale...filter_for_jsf
    Attention, conteneur J2EE 1.4 uniquement.

  5. #5
    Membre habitué
    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
    Points : 143
    Points
    143
    Par défaut
    tu peux jeter aussi un coup d'oeil au projet jGuard(www.jguard.net), qui via un servlet filter utilise JAAS(requiert seulement j2ee 1.3 et java 1.4).
    la portabilité suivant les servuers d'applications est présente, et la configuration dynamique contrairement à la solution déclarative j2ee exposée dans ce sujet.

    jGuard fournit aussi de nombreuses autres fonctionnalités tels une librarie de taglib pour afficher des bouts de pages suivant le profil, la gestion suivant les rôles, l'héritage des rôles, l'authentification BASIC, par formulaire, ou via une authentification cliente par certificats etc....


    cordialement,

    Charles(jGuard team).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 12
    Points
    12
    Par défaut
    salut diabolo512,

    Je decouvre JGuard et pour l'instant je ne lui ai pas encore trouvé de défaut!
    sauf peut être dans ce que tu viens de dire :

    Citation Envoyé par diabolo512
    la portabilité suivant les servuers d'applications est présente, et la configuration dynamique contrairement à la solution déclarative j2ee exposée dans ce sujet.
    quand tu dis que la portabilité est "présente" tu veux dire qu'elle est garantie?
    comme je n'ai toujours pas accès au wiki du projet je t'embete encore un peu concernant la gestion des permissions sur les actions JGuard est compatible avec JSF en plus Struts?

    Voila j'aurai encore des questions a poser parce que je pense qu'il y a un potentiel enorme dans ce projet. merci encore!

  7. #7
    Membre habitué
    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
    Points : 143
    Points
    143
    Par défaut
    bonjour,
    concernant la portabilité, je veux dire que nous n'avons aucun code spécifique à un serveur d'applications. notre code repose principalement sur les apisde sécurité de java.
    concernant le fonctionnement de jGuard sur tous les serveurs d'applications, nous ne l'avons pas testé dans tous les cas.
    Mais nous avons eu des retours très positifs concernant Tomcat, Jetty,Jboss, Jonas, Websphere dans une utilisation avancée de jGuard (je ne l'ai pas testé personnellement pour celui-ci), Oracle Application server.

    pour le wiki, il y avait effectivement un problème d'accès à celui-ci qui est réglé.

    pour jGUard et les JSF/Tapestry ou autre framework web, il faut voir que jGuard propose un filtre de servlet qui contrôle toutes les requêtes http basé sur des URLs (d'autres contrôles custom sont possibles en étnendant permission de java).
    comme les jsf sont accédés via des urls, tu peux sécuriser l'accès à une page ou une autre via jGUard.
    jGuard permet aussi de sécuriser des bouts de pages via des taglibs. dans le cas des jsf, ce n'est pas la même chose. il faudrait donner accès à des composant dans une page (et non via des taglibs).jguard ne propose pas encore ce mécanisme, mais avec un léger effort, cela est faisable.
    reste à prioriser les fonctionnalités: nous privilégions les fonctionnalités les plusdemandées par les utilisateurs, principalement sur le forum de jGuard.

    en espérant que mes réponses t'auront éclairé,

    Charles.

  8. #8
    Membre habitué
    Inscrit en
    Décembre 2002
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 186
    Points : 130
    Points
    130
    Par défaut
    les composants tomahawk ont un attribut basé sur le role de l'utilisateur, est suivant ses autorisations, il effectue ou non le rendu.
    C'est une solution que le n'ai jamais testé

Discussions similaires

  1. Réponses: 0
    Dernier message: 03/05/2014, 14h52
  2. Empêcher l'accès direct à une page JSF
    Par TheJoe dans le forum JSF
    Réponses: 7
    Dernier message: 03/08/2012, 13h22
  3. Comment proteger contre l'acces direct aux pages?
    Par tetepro dans le forum Langage
    Réponses: 5
    Dernier message: 16/04/2008, 19h44
  4. Protéger page JSF contre accès direct
    Par Sun03 dans le forum JSF
    Réponses: 1
    Dernier message: 17/03/2008, 13h30

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