2009-09-29 8 views
1

J'ai un site qui utilise des formulaires et valide les champs et redirige vers d'autres pages etc, mais je dois savoir comment empêcher un utilisateur d'accéder directement à une page avec l'URL et il est redirigé vers la connexion formulaire ...restreindre l'accès url dans JSP

J'ai vu cela, mais je ne sais pas comment l'appeler. : S

Je pense que c'est avec des variables de session, et que je devrais vérifier une variable de session dans le haut de la page que je veux restreindre. J'utilise JSP dans la construction de mon site Web.

Répondre

3

Vous pouvez le faire de manière déclarative avec des contraintes de sécurité dans le descripteur de déploiement.

Essentiellement, vous dites « cet ensemble de ressources est accessible par les utilisateurs dans un ensemble de règles en utilisant un ensemble de méthodes HTTP », comme suit:

Ressources derrière les URL/sécurisé/* ne sont accessibles aux utilisateurs authentifiés dans le rôle 'admin'.

<web-app...> 
    <security-constraint> 

    <web-resource-collection> 
     <web-resource-name>secured</web-resource-name> 
     <description>Secured pages</description> 
     <url-pattern>/secured/*</url-pattern> 
     <http-method>POST</http-method> 
     <http-method>GET</http-method> 
    </web-resource-collection> 

    <auth-constraint> 
     <description>Administrative users</description> 
     <role-name>admin</role-name> 
    </auth-constraint> 

    </security-constraint> 

</web-app> 

Il nécessite une certaine configuration - domaines de sécurité, etc., la configuration de formulaire de connexion, mais cela signifie que la configuration de votre sécurité ne se fait pas un programme, il est plutôt dans un supporté outil et de manière abstraite, déclarative. Cela permet de garder votre code propre et ciblé.

Voici la partie pertinente du Sun Educational material for Java EE 5. C'est un sujet relativement complexe et potentiellement très important. Je vous suggère donc d'avoir une bonne lecture du contenu.

2

Le didacticiel Java EE comporte une section dédiée à securing web applications.

C'est ce que vous devez faire - vous serez en mesure de déclarer vos contraintes de sécurité dans votre descripteur webapp (web.xml). Here est un exemple de la façon de sécuriser une URL particulière

+0

cela semble bon .. Thaks pour votre réponse rapide .. – Nave

2

Vous pouvez également utiliser un filtre qui intercepte toutes les demandes et les transmet au bon chemin, le cas échéant. Cela prendrait plus de travail que de contraintes de sécurité, mais vous pourriez avoir plus de contrôle sur le traitement. Cependant, l'utilisation de contraintes de sécurité est certainement une bonne solution simple.