Example usage for org.springframework.security.web.authentication.ui DefaultLoginPageGeneratingFilter ERROR_PARAMETER_NAME

List of usage examples for org.springframework.security.web.authentication.ui DefaultLoginPageGeneratingFilter ERROR_PARAMETER_NAME

Introduction

In this page you can find the example usage for org.springframework.security.web.authentication.ui DefaultLoginPageGeneratingFilter ERROR_PARAMETER_NAME.

Prototype

String ERROR_PARAMETER_NAME

To view the source code for org.springframework.security.web.authentication.ui DefaultLoginPageGeneratingFilter ERROR_PARAMETER_NAME.

Click Source Link

Usage

From source file:org.springframework.security.config.http.FormLoginBeanDefinitionParser.java

private RootBeanDefinition createFilterBean(String loginUrl, String defaultTargetUrl, String alwaysUseDefault,
        String loginPage, String authenticationFailureUrl, String successHandlerRef, String failureHandlerRef,
        String authDetailsSourceRef, String authenticationFailureForwardUrl,
        String authenticationSuccessForwardUrl) {

    BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(filterClassName);

    if (!StringUtils.hasText(loginUrl)) {
        loginUrl = defaultLoginProcessingUrl;
    }/*from w w w. java2  s  .  c o  m*/

    this.loginProcessingUrl = loginUrl;

    BeanDefinitionBuilder matcherBuilder = BeanDefinitionBuilder
            .rootBeanDefinition("org.springframework.security.web.util.matcher.AntPathRequestMatcher");
    matcherBuilder.addConstructorArgValue(loginUrl);
    if (loginMethod != null) {
        matcherBuilder.addConstructorArgValue("POST");
    }

    filterBuilder.addPropertyValue("requiresAuthenticationRequestMatcher", matcherBuilder.getBeanDefinition());

    if (StringUtils.hasText(successHandlerRef)) {
        filterBuilder.addPropertyReference("authenticationSuccessHandler", successHandlerRef);
    } else if (StringUtils.hasText(authenticationSuccessForwardUrl)) {
        BeanDefinitionBuilder forwardSuccessHandler = BeanDefinitionBuilder
                .rootBeanDefinition(ForwardAuthenticationSuccessHandler.class);
        forwardSuccessHandler.addConstructorArgValue(authenticationSuccessForwardUrl);
        filterBuilder.addPropertyValue("authenticationSuccessHandler",
                forwardSuccessHandler.getBeanDefinition());
    } else {
        BeanDefinitionBuilder successHandler = BeanDefinitionBuilder
                .rootBeanDefinition(SavedRequestAwareAuthenticationSuccessHandler.class);
        if ("true".equals(alwaysUseDefault)) {
            successHandler.addPropertyValue("alwaysUseDefaultTargetUrl", Boolean.TRUE);
        }
        successHandler.addPropertyValue("requestCache", requestCache);
        successHandler.addPropertyValue("defaultTargetUrl",
                StringUtils.hasText(defaultTargetUrl) ? defaultTargetUrl : DEF_FORM_LOGIN_TARGET_URL);
        filterBuilder.addPropertyValue("authenticationSuccessHandler", successHandler.getBeanDefinition());
    }

    if (StringUtils.hasText(authDetailsSourceRef)) {
        filterBuilder.addPropertyReference("authenticationDetailsSource", authDetailsSourceRef);
    }

    if (sessionStrategy != null) {
        filterBuilder.addPropertyValue("sessionAuthenticationStrategy", sessionStrategy);
    }

    if (StringUtils.hasText(failureHandlerRef)) {
        filterBuilder.addPropertyReference("authenticationFailureHandler", failureHandlerRef);
    } else if (StringUtils.hasText(authenticationFailureForwardUrl)) {
        BeanDefinitionBuilder forwardFailureHandler = BeanDefinitionBuilder
                .rootBeanDefinition(ForwardAuthenticationFailureHandler.class);
        forwardFailureHandler.addConstructorArgValue(authenticationFailureForwardUrl);
        filterBuilder.addPropertyValue("authenticationFailureHandler",
                forwardFailureHandler.getBeanDefinition());
    } else {
        BeanDefinitionBuilder failureHandler = BeanDefinitionBuilder
                .rootBeanDefinition(SimpleUrlAuthenticationFailureHandler.class);
        if (!StringUtils.hasText(authenticationFailureUrl)) {
            // Fall back to re-displaying the custom login page, if one was specified.
            if (StringUtils.hasText(loginPage)) {
                authenticationFailureUrl = loginPage + "?"
                        + DefaultLoginPageGeneratingFilter.ERROR_PARAMETER_NAME;
            } else {
                authenticationFailureUrl = DEF_FORM_LOGIN_AUTHENTICATION_FAILURE_URL;
            }
        }
        failureHandler.addPropertyValue("defaultFailureUrl", authenticationFailureUrl);
        failureHandler.addPropertyValue("allowSessionCreation", allowSessionCreation);
        filterBuilder.addPropertyValue("authenticationFailureHandler", failureHandler.getBeanDefinition());
    }

    return (RootBeanDefinition) filterBuilder.getBeanDefinition();
}