mirror of
https://github.com/spring-projects/spring-security.git
synced 2025-07-24 11:13:30 +00:00
Changed to use a BeanReference when creating default login page to prevent duplication of filter bean.
This commit is contained in:
parent
3d9ea49d19
commit
0cdac4912a
@ -1,14 +1,16 @@
|
||||
package org.springframework.security.config;
|
||||
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.beans.factory.config.RuntimeBeanReference;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.beans.factory.xml.BeanDefinitionParser;
|
||||
import org.springframework.beans.factory.xml.ParserContext;
|
||||
import org.springframework.beans.factory.config.BeanDefinition;
|
||||
import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;
|
||||
import org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint;
|
||||
import org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import org.w3c.dom.Element;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@ -22,7 +24,7 @@ public class FormLoginBeanDefinitionParser implements BeanDefinitionParser {
|
||||
|
||||
public static final String DEFAULT_FORM_LOGIN_FILTER_ID = "_formLoginFilter";
|
||||
public static final String DEFAULT_FORM_LOGIN_ENTRY_POINT_ID = "_formLoginEntryPoint";
|
||||
|
||||
|
||||
private static final String LOGIN_URL_ATTRIBUTE = "loginUrl";
|
||||
private static final String LOGIN_PAGE_ATTRIBUTE = "loginPage";
|
||||
|
||||
@ -41,7 +43,6 @@ public class FormLoginBeanDefinitionParser implements BeanDefinitionParser {
|
||||
BeanDefinitionBuilder entryPointBuilder =
|
||||
BeanDefinitionBuilder.rootBeanDefinition(AuthenticationProcessingFilterEntryPoint.class);
|
||||
|
||||
|
||||
String loginPage = elt.getAttribute(LOGIN_PAGE_ATTRIBUTE);
|
||||
|
||||
// If no login page has been defined, add in the default page generator.
|
||||
@ -50,7 +51,8 @@ public class FormLoginBeanDefinitionParser implements BeanDefinitionParser {
|
||||
"the 'loginPage' attribute to specify the URL of the login page.");
|
||||
loginPage = DefaultLoginPageGeneratingFilter.DEFAULT_LOGIN_PAGE_URL;
|
||||
RootBeanDefinition loginPageFilter = new RootBeanDefinition(DefaultLoginPageGeneratingFilter.class);
|
||||
loginPageFilter.getConstructorArgumentValues().addGenericArgumentValue(filterBean);
|
||||
loginPageFilter.getConstructorArgumentValues().addGenericArgumentValue(
|
||||
new RuntimeBeanReference(DEFAULT_FORM_LOGIN_FILTER_ID));
|
||||
parserContext.getRegistry().registerBeanDefinition("_springSecurityLoginPageFilter", loginPageFilter);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user