2012-03-18 1 views
0

J'utilise JAAS pour sécuriser mon application Web. Comme le titre l'indique, le problème est que j'obtiens la page d'accueil qui se trouve dans le dossier protégé au lieu de la page de connexion. En fait, la page d'accueil est ma page d'accueil. En passant, cela fonctionne très bien quand j'écris l'URL (/myappJaas/protected/admin/homeadmin.xhtml) dans le navigateur Web. Ceci est le fichier web.xml:pourquoi est-ce que j'obtiens la page protégée au lieu de la page de connexion?

<welcome-file-list> 
    <welcome-file>/protected/admin/homeadmin.xhtml</welcome-file> 
</welcome-file-list> 
<security-constraint> 
    <web-resource-collection> 
     <web-resource-name>admins</web-resource-name> 
     <url-pattern>/protected/admin/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
</security-constraint> 
<login-config> 
    <auth-method>FORM</auth-method> 
    <form-login-config> 
     <form-login-page>/public/login.xhtml</form-login-page> 
     <form-error-page>/public/errorlogin.xhtml</form-error-page> 
    </form-login-config> 
</login-config> 
<security-role> 
    <role-name>admin</role-name> 
</security-role> 

Répondre

1

vous avez mal compris le but de <welcome-file>. Il devrait représenter le seul nom de fichier du fichier d'index par défaut du répertoire. Ce fichier sera présenté à l'utilisateur final lorsque l'utilisateur final demandera un répertoire. Le conteneur enverra ensuite le fichier de bienvenue configuré de manière transparente à l'utilisateur final sans envoyer de redirection. Cependant, l'URL actuelle est toujours dans le domaine public.

Vous souhaitez envoyer une redirection digne de confiance à la place. Vous pouvez le faire dans un filtre, ou par un <meta http-equiv="refresh"> dans le fichier de bienvenue index.xhtml, ou dans le constructeur du bean géré associé au fichier de bienvenue fictif index.xhtml.

Questions connexes