From e3435da9ae57b263febc7d709b8a4181f8917067 Mon Sep 17 00:00:00 2001 From: Vishal Puri Date: Fri, 18 May 2007 03:20:28 +0000 Subject: [PATCH] SEC-271: removed autowiring by type and explicity introspected the applicationContext to detect the required dependencies of userDetailsService --- .../AuthenticationProviderOrderResolver.java | 15 +- ...icationRepositoryBeanDefinitionParser.java | 107 +++++++------ ...ememberMeServicesBeanDefinitionParser.java | 9 +- .../config/spring-security-2.0.xsd | 28 ++-- .../AuthenticationRepositoryParserTest.java | 151 +++++++++--------- .../config/logout-filter-with-handlers.xml | 7 +- samples/pom.xml | 52 +++--- .../applicationContext-acegi-security.xml | 12 +- 8 files changed, 203 insertions(+), 178 deletions(-) diff --git a/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java b/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java index 938c2b8a20..7685d60714 100644 --- a/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java +++ b/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java @@ -1,15 +1,16 @@ package org.acegisecurity.config; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; -import java.util.Map; import org.acegisecurity.AuthenticationManager; import org.acegisecurity.providers.AuthenticationProvider; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanFactoryPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.core.OrderComparator; @@ -20,7 +21,7 @@ public class AuthenticationProviderOrderResolver implements BeanFactoryPostProce */ public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { // retrieve all the AuthenticationProvider instances - List providers = retrieveAllAuthenticationProviders(beanFactory); + ManagedList providers = retrieveAllAuthenticationProviders(beanFactory); String[] names = beanFactory.getBeanNamesForType(AuthenticationManager.class); RootBeanDefinition definition = (RootBeanDefinition)beanFactory.getBeanDefinition(names[0]); definition.getPropertyValues().addPropertyValue("providers",providers); @@ -30,9 +31,13 @@ public class AuthenticationProviderOrderResolver implements BeanFactoryPostProce * @param beanFactory * @return */ - private List retrieveAllAuthenticationProviders(ConfigurableListableBeanFactory beanFactory) { - Map m = beanFactory.getBeansOfType(AuthenticationProvider.class); - List l = new ArrayList(m.values()); + private ManagedList retrieveAllAuthenticationProviders(ConfigurableListableBeanFactory beanFactory) { + String[] m = beanFactory.getBeanNamesForType(AuthenticationProvider.class); + ManagedList l = new ManagedList(); + for(int i=0;i - + + + + + + + + + + + + + + + - - - - - - - - + + + + diff --git a/samples/pom.xml b/samples/pom.xml index cc39ba404a..228eccc54a 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -1,29 +1,25 @@ - - - 4.0.0 - - org.acegisecurity - acegi-security-parent - 1.1-SNAPSHOT - - acegi-security-samples - Acegi Security System for Spring - Samples - pom - - - org.acegisecurity - acegi-security-tiger - ${project.version} - - - - - annotations - attributes - contacts - contacts-tiger - - + + 4.0.0 + org.acegisecurity + acegi-security-samples + pom + 1.1-SNAPSHOT + acegi-security-samples + + org.acegisecurity + acegi-security-parent + 1.1-SNAPSHOT + + + + tutorial + diff --git a/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-acegi-security.xml b/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-acegi-security.xml index f7bcf6a23d..76786f68c2 100644 --- a/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-acegi-security.xml +++ b/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-acegi-security.xml @@ -42,10 +42,11 @@ - + + id="rememberMeServices" key="someValue" /> - - + + @@ -72,7 +73,8 @@ class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter" /> - +