mad mad - 8 months ago 55
Java Question

spring security 3.1. custom authentication-failure-url with url parameters

I googled and tried lot of variants for some hours but without any success.
Please help me to find a solution.

Spring version: Spring 3.1

I have login page. Login page depends on URL parameter:




So client1 and client2 has different login pages.


<sec:form-login login-page="/login" default-target-url="/start" authentication-failure-url="/login"/>

So if user make wrong authentication I show him /login page...
But point is I have to show login page with corresponding code parameter.

What should I do? Have tyou examples please?

Thanks a lot for advance.


I created FailureHandler class:

public class GRSAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler implements AuthenticationFailureHandler {

public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) {



What should I write inside to get redirect to needed URL?
Please if you can give me more details.

Thanks a lot!

Answer Source

You could use the SimpleUrlAuthenticationFailureHandler and implement a different RedirectStrategy which redirect to the configured URL and adds the original query string to the redirected URL.

public class QueryStringPropagateRedirectStrategy extends DefaultRedirectStrategy {

    public void sendRedirect(HttpServletRequest request,
            HttpServletResponse response, String url) throws IOException {
        String urlWithOriginalQueryString = url + "?" + request.getQueryString();
        super.sendRedirect(request, response, urlWithOriginalQueryString );


Authentication failure handler configurations

<bean id="authenticationFailureHandler" class="">
    <property name="redirectStrategy" ref="queryStringPropagateRedirectStrategy" />
    <property name="defaultFailureUrl" value="/login" />

<bean id="queryStringPropagateRedirectStrategy" class="...QueryStringPropagateRedirectStrategy" />