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 :

Restreindre l'accès direct à certaines pages


Sujet :

JSF Java

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut Restreindre l'accès direct à certaines pages
    Bonjour,

    mon problème semblait avoir plusieurs réponses dans ce forum (ou sur d'autres forums du site), mais aucune ne semble fonctionner chez moi. Donc je le soumets à votre avis :
    certaines pages de mon site ne sont pas prévues pour être accédées directement : elles sont le résultat d'un processus (par exemple une page classique : (monsite)/connected/userProfile/results/updateSuccessfull.jsf).

    Je dispose donc d'une série de patterns que je voudrais rajouter à mon web.xml pour interdire l'accès direct à toutes les pages le respectant (/connected/userProfile/results/* par exemple ici). Par contre, il faut que ces pages restent accessibles à l'issu du processus qui déclenche à leur affichage.

    J'ai suivi (je crois!) les solutions décrites ici et ici, ce qui me semblait donner qqchose comme ça (extrait 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     	<!-- forbidd direct access to results page (connected part) -->
     	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>NoDirectAccessToPages</web-resource-name>
    			<description>
    				Theses pages cannot be directly targeted 
    			</description>
    			<url-pattern>/connected/userProfile/results/*</url-pattern>
     		</web-resource-collection>
    	  	<auth-constraint>
    	   		<description>No direct access to this pattern</description>
    	  	</auth-constraint>
    	</security-constraint>
     
     	<!-- forbidd direct access to results page (disconnected part) -->
     	<security-constraint>
    		<web-resource-collection>
    			<web-resource-name>NoDirectAccessToDCPages</web-resource-name>
    			<description>
    				Theses pages cannot be directly targeted 
    			</description>
    			<url-pattern>/public/results/*</url-pattern>
     		</web-resource-collection>	  	<auth-constraint>
    	   		<description>No direct access to this pattern</description>
    	  	</auth-constraint>
    	</security-constraint>
    Mon problème est que si l'accès est effectivement bien restreint, il l'est malheureusement systématiquement, ie y compris dans le processus où ces pages doivent logiquement être affichées.

    J'ai tenté de jouer avec les
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <http-method>GET/POST</http-method>
    pour essayer d'y remédier, mais rien n'y fait.

    Donc si qqn pouvait pointer du doigt l'erreur que j'ai forcément commise, ou me suggérer la bonne marche à suivre, il fera de moi un développeur heureux!

    D'ici là, merci déjà de m'avoir lu, et par avance pour vos remarques ou suggestions!

  2. #2
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Le plus simple, je pense, serait d'avoir ton action qui met une valeur dans le request scope, et d'avoir ton JSF qui contient rendered="#{marqueurRequete.isAction}"

    Au delà de ça, les autres méthodes dépendent de la manière dont tu feux autoriser l'accès à ce jsf. Comme le résultat d'un forward, le résultat d'une action, le résultat d'un redirect ??

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut
    Merci de tes réponses!

    Citation Envoyé par tchize_ Voir le message
    Le plus simple, je pense, serait d'avoir ton action qui met une valeur dans le request scope, et d'avoir ton JSF qui contient rendered="#{marqueurRequete.isAction}"
    Quand tu dis "ton JSF", tu parles de la vue? Mais dans ce cas, ma vue ne sera juste pas rendue... non?
    J'aurais qd même une préférence pour une solution de type config, entre autres parcequ'elle me permettrait d'avoir une jolie page "vous n'avez pas l'autorisation d'accéder directement à cette page" ou une redirection (selon la page). Une autre raison est qu'il y a beaucoup de pages à configurer!!
    Enfin, beaucoup de ces pages interdites sont des compositions, incluant entre autres header et footer communs aux autres pages. Donc ça me paraît compliqué comme méthode...
    (je sais, je suis exigent!)


    Citation Envoyé par tchize_ Voir le message
    Au delà de ça, les autres méthodes dépendent de la manière dont tu feux autoriser l'accès à ce jsf. Comme le résultat d'un forward, le résultat d'une action, le résultat d'un redirect ??
    Les trois... c'est à peu près la moitié de notre site que j'aimerais configurer de la sorte.

  4. #4
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Sur une page resultat uniquement d'un forward, ou sur une page n'étant que "inclue" dans une autre, tu peux te contenter de mettre un servlet filter, qui n'agit qu'en cas de request, et qui redirige "ailleurs".

    Sur le resutat d'un redirect, c'est beaucoup plus complexe, car il est difficile de faire la différence facilement et de manière générique entre un redirect et un requete isolée, puisque le redirect passe par le navigateur.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2008
    Messages : 179
    Points : 172
    Points
    172
    Par défaut
    Aye... je comprends mieux le problème.
    Ca va être coton, alors
    Bon, on va procéder par étapes, alors!

    Merci de ton aide!

Discussions similaires

  1. Empêcher l'accès direct à certaines pages
    Par ZouBi dans le forum JSF
    Réponses: 3
    Dernier message: 04/12/2012, 09h04
  2. [Débutant J2EE] Restreindre l'accès de certaines pages
    Par Rolf-IV dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 19/11/2008, 16h00
  3. Accès direct à la page impossible (membres seulement)
    Par FrankOVD dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/02/2006, 20h18
  4. Réponses: 5
    Dernier message: 09/01/2006, 11h46
  5. Réponses: 10
    Dernier message: 23/11/2004, 18h14

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