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):
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
<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!
Partager