Forward vers Spring MVC inopérant
Bonjour,
J'utilise Spring Security et Spring MVC, tout deux en version 3.
Mon problème est le suivant :
Dans le handler utilisé par Spring Security pour renvoyer à l'utilisateur la page d'erreur de login, j'aimerais rediriger la HttpServletRequest (à laquelle j'y ajoute un attribut) et la HttpServletResponse de manière à ce que Spring MVC les traitent avec un controleur dédié.
Pour faire ça, j'ai donc utilisé le forwarding, mais à l'exécution, lorsque je fais une erreur de login, le serveur utilisé, Jetty, me dit que la page en question est introuvable :
Code:
1 2 3
| Problem accessing /spring-app/loginFailure.action. Reason:
NOT_FOUND |
Pourtant, cette même page est accessible et s'affiche lorsqu'on l'appelle directement depuis le navigateur.
Voici le code du handler mentionné ci-dessus :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
public class CustomAuthenticationFailureHandler implements AuthenticationFailureHandler
{
public void onAuthenticationFailure(HttpServletRequest request,HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException
{
if(exception instanceof CustomAuthenticationException)
{
request.setAttribute("authentication", exception.getAuthentication());
request.getRequestDispatcher("/loginFailure.action").forward(request,response);
}
}
} |
et le code du controleur :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
@RequestMapping(value="/loginFailure.action")
public String getLoginFailure(HttpServletRequest request)
{
Object o = request.getAttribute("authentication");
if(o instanceof Authentication)
{
Authentication authentication = (Authentication) o;
String login = (String)authentication.getPrincipal();
String password = (String)authentication.getCredentials();
// ...
}
return "login";
} |
Merci !