j_security_check appelé directement
J'ai une application web, et je veux que la page d'accueil afin d'inclure un formulaire de connexion, entre autres données. Si l'utilisateur de choisir pour vous connecter, il doit être redirigé vers une autre page (par exemple, login_success.jsp). Ma question est: puis-je utiliser j_security_check mécanisme pour l'enregistrement ou le seul moyen est d'utiliser un bean géré de prendre soin de la connexion?
ma page d'accueil ressemble à ceci:
....
<form action="j_security_check" method="POST" name="loginForm">
<h:panelGrid columns="2">
<h:outputLabel id="userNameLabel" for="j_username" value="#{label.home_username}:" />
<h:inputText id="j_username" autocomplete="off" />
<h:outputLabel id="passwordLabel" for="j_password" value="#{label.home_password}:" />
<h:inputSecret id="j_password" autocomplete="off" />
<h:panelGroup>
<h:commandButton type="submit" value="Login" />
<h:commandButton type="reset" value="Clear" />
</h:panelGroup>
</h:panelGrid>
</form>
...
si je presse le bouton de connexion, je reçois -> HTTP Statut De 400 Invalide référence directe à la forme de la page de login. et il est évident que, j_security_check mécanisme ne sais pas où "redirect", puisque je n'ai pas demander à une ressource protégée avant.
OriginalL'auteur grozandrei | 2013-05-25
Vous devez vous connecter pour publier un commentaire.
Cela signifie que vous avez ouvert manuellement
<form-login-page>
par une demande directe alors que c'est rejetée.Ce n'est pas ce que l'erreur a été d'essayer de vous dire.
Mettre la page de login
/WEB-INF
dossier pour empêcher que possible l'accès direct. Ensuite, pour déclencher la connexion, il suffit de demander la limité des ressources directement. Le conteneur se présentera automatiquement la page de connexion si nécessaire.Ou, si vous n'avez pas limitée-seules les ressources (c'est à dire la connexion ne montre plus d'options/fonctionnalités, comme dans un forum de discussion), puis ne pas utiliser un
<form-login-page>
, mais au lieu d'un formulaire JSF avec un backing bean qui invoqueHttpServletRequest#login()
.Voir aussi:
OriginalL'auteur BalusC