From 9871685ea3190555162f6471c0e72700d5cfa8d9 Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Fri, 21 Mar 2008 21:50:26 +0000 Subject: [PATCH] SEC-722: Fixed problem with empty loginpage string (rather than null) preventing default login page filter from being added to the stack. --- .../config/FormLoginBeanDefinitionParser.java | 5 ++++- .../config/HttpSecurityBeanDefinitionParserTests.java | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/springframework/security/config/FormLoginBeanDefinitionParser.java b/core/src/main/java/org/springframework/security/config/FormLoginBeanDefinitionParser.java index 9053a68dd8..4be808a530 100644 --- a/core/src/main/java/org/springframework/security/config/FormLoginBeanDefinitionParser.java +++ b/core/src/main/java/org/springframework/security/config/FormLoginBeanDefinitionParser.java @@ -58,6 +58,9 @@ public class FormLoginBeanDefinitionParser implements BeanDefinitionParser { defaultTargetUrl = elt.getAttribute(ATT_FORM_LOGIN_TARGET_URL); authenticationFailureUrl = elt.getAttribute(ATT_FORM_LOGIN_AUTHENTICATION_FAILURE_URL); loginPage = elt.getAttribute(ATT_LOGIN_PAGE); + if (!StringUtils.hasText(loginPage)) { + loginPage = null; + } source = parserContext.extractSource(elt); } @@ -73,7 +76,7 @@ public class FormLoginBeanDefinitionParser implements BeanDefinitionParser { BeanDefinitionBuilder.rootBeanDefinition(AuthenticationProcessingFilterEntryPoint.class); entryPointBuilder.setSource(source); - entryPointBuilder.addPropertyValue("loginFormUrl", StringUtils.hasText(loginPage) ? loginPage : DEF_LOGIN_PAGE); + entryPointBuilder.addPropertyValue("loginFormUrl", loginPage != null ? loginPage : DEF_LOGIN_PAGE); entryPointBean = (RootBeanDefinition) entryPointBuilder.getBeanDefinition(); diff --git a/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java b/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java index bdb578a304..5e994afff6 100644 --- a/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java +++ b/core/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java @@ -122,6 +122,17 @@ public class HttpSecurityBeanDefinitionParserTests { } + @Test + public void formLoginWithNoLoginPageAddsDefaultLoginPageFilter() { + setContext( + " " + + " " + + " " + AUTH_PROVIDER_XML); + FilterChainProxy filterChainProxy = getFilterChainProxy(); + // These will be matched by the default pattern "/**" + checkAutoConfigFilters(filterChainProxy.getFilters("/anything")); + } + @Test public void lowerCaseComparisonIsRespectedBySecurityFilterInvocationDefinitionSource() throws Exception { setContext(