2013-06-19 2 views
0

Je crée une application Web à l'aide de Java ee. J'ai un serveur glassfish v4 et maintenant j'essaie de faire fonctionner la sécurité en spécifiant les contraintes de sécurité dans mon fichier web.xml. Mon application s'appelle linkUI, et je voulais essayer de créer une zone protégée où vous deviez être connecté pour accéder à l'une des ressources de localhost: 8080/linkUI/area, donc j'ai ajouté une contrainte de sécurité pour cela dans le fichier web.xml Mais lorsque j'essaie d'accéder à cette adresse, j'obtiens le statut HTTP 404 - Non trouvé (je n'ai pas encore créé de ressources) au lieu d'être redirigé vers la page de connexion que j'ai configurée dans le descripteur de déploiement. Il semble trouver le descripteur de déploiement parce que lorsque je me connecte directement à login.jsp, il me redirige vers la page d'erreur attendue. Bien que la connexion semble toujours échouer bien que j'aie ajouté un utilisateur et un groupe sur le serveur glassfish et activé le principal par défaut pour le mappage de rôle comme indiqué ici: http://docs.oracle.com/javaee/6/tutorial/doc/bncbx.html#bncby.Sécurité déclarative pour l'application Java ee

Je ne sais pas quoi vérifier maintenant. Aucune suggestion?

Ceci est mon web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
    version="3.1"> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
     <!-- SECURITY CONSTRAINT #1 --> 
    <security-constraint> 
     <web-resource-collection> 
      <web-resource-name>Protected area</web-resource-name> 
      <url-pattern>/linkUI/area/*</url-pattern> 
     </web-resource-collection> 
     <auth-constraint> 
      <role-name>testgroup</role-name> 
     </auth-constraint> 
    </security-constraint> 
    <login-config> 
     <auth-method>FORM</auth-method> 
     <realm-name>file</realm-name> 
     <form-login-config> 
      <form-login-page>/login.jsp</form-login-page> 
      <form-error-page>/loginError.jsp</form-error-page> 
     </form-login-config> 
    </login-config> 
    <security-role> 
     <description/> 
     <role-name>testgroup</role-name> 
    </security-role> 
</web-app> 

Répondre

0

Si vous protégez localhost: 8080/linkUI/région/*, puis linkUI est la racine de votre contexte et, par défaut, le nom de votre fichier WAR. Est-ce le cas?

Si oui, les modèles d'URL doivent être par rapport à la racine du contexte, ainsi:

<url-pattern>/area/*</url-pattern>