From b30162191e7fd181f9a167bb98294c450a7ebbd0 Mon Sep 17 00:00:00 2001 From: Vishal Puri Date: Fri, 25 May 2007 03:17:12 +0000 Subject: [PATCH] SEC-271: Moved spring security namespaces cnfig code to sandbox --- ...essDeniedHandlerBeanDefinitionLocator.java | 50 -- ...ticationMechanismBeanDefinitionParser.java | 73 --- ...nProcessingFilterBeanDefinitionParser.java | 58 --- ...rocessingFilterDependenciesConfigurer.java | 43 -- .../AuthenticationProviderOrderResolver.java | 46 -- ...icationRepositoryBeanDefinitionParser.java | 196 -------- ...ationRepositoryDependenciesConfigurer.java | 37 -- ...ontextIntegrationBeanDefinitionParser.java | 78 --- ...TranslationFilterBeanDefinitionParser.java | 121 ----- .../LogoutFilterBeanDefinitionParser.java | 64 --- .../config/LogoutHandlerOrderResolver.java | 95 ---- ...incipalRepositoryBeanDefinitionParser.java | 235 --------- ...meberMeServicesDependenciesConfigurer.java | 35 -- .../RememberMeFilterBeanDefinitionParser.java | 49 -- ...ememberMeServicesBeanDefinitionParser.java | 62 --- .../config/SecurityNamespaceHandler.java | 33 -- .../ui/basicauth/BasicProcessingFilter.java | 14 +- .../BasicProcessingFilterEntryPoint.java | 22 +- .../config/spring-security-2.0.xsd | 444 ------------------ ...icationProcessingFilterNamespaceTests.java | 25 - .../AuthenticationRepositoryParserTest.java | 120 ----- .../ExceptionTranslationParserTests.java | 47 -- ...tpSessionContextIntegrationParserTest.java | 44 -- ...LogoutFilterBeanDefinitionParserTests.java | 29 -- .../PrincipalRepositoryNamespaceTests.java | 66 --- .../RememberMeBeanDefinitionParserTest.java | 16 - .../BasicProcessingFilterEntryPointTests.java | 6 +- .../config/authentication-basic-filter.xml | 21 - .../authentication-beanRef-attributes.xml | 53 --- .../config/authentication-dao-defaults.xml | 54 --- .../config/authentication-defaults.xml | 40 -- .../config/authentication-form-filter.xml | 57 --- .../config/authentication-innerbeans.xml | 50 -- ...ception-translation-autodetect-handler.xml | 37 -- .../config/exception-translation-beanref.xml | 38 -- .../config/logout-filter-with-handlers.xml | 34 -- .../config/principal-repository-jdbc.xml | 44 -- .../principal-repository-properties.xml | 22 - .../config/principal-repository-user-map.xml | 28 -- .../config/remember-me-defaults.xml | 76 --- .../config/security-autoconfig-autodetect.xml | 21 - .../config/security-namespaces.xml | 183 -------- .../session-context-integration-defaults.xml | 63 --- .../org/acegisecurity/config/user.properties | 2 - sandbox/pom.xml | 9 +- 45 files changed, 37 insertions(+), 2903 deletions(-) delete mode 100644 core/src/main/java/org/acegisecurity/config/AccessDeniedHandlerBeanDefinitionLocator.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterDependenciesConfigurer.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationRepositoryBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/AuthenticationRepositoryDependenciesConfigurer.java delete mode 100644 core/src/main/java/org/acegisecurity/config/ContextIntegrationBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/ExceptionTranslationFilterBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java delete mode 100644 core/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/RemeberMeServicesDependenciesConfigurer.java delete mode 100644 core/src/main/java/org/acegisecurity/config/RememberMeFilterBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/RememberMeServicesBeanDefinitionParser.java delete mode 100644 core/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java delete mode 100644 core/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd delete mode 100644 core/src/test/java/org/acegisecurity/config/AuthenticationProcessingFilterNamespaceTests.java delete mode 100644 core/src/test/java/org/acegisecurity/config/AuthenticationRepositoryParserTest.java delete mode 100644 core/src/test/java/org/acegisecurity/config/ExceptionTranslationParserTests.java delete mode 100644 core/src/test/java/org/acegisecurity/config/HttpSessionContextIntegrationParserTest.java delete mode 100644 core/src/test/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParserTests.java delete mode 100644 core/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java delete mode 100644 core/src/test/java/org/acegisecurity/config/RememberMeBeanDefinitionParserTest.java delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-basic-filter.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-beanRef-attributes.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-dao-defaults.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-defaults.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-form-filter.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/authentication-innerbeans.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/exception-translation-autodetect-handler.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/exception-translation-beanref.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/logout-filter-with-handlers.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/principal-repository-jdbc.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/principal-repository-properties.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/principal-repository-user-map.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/security-autoconfig-autodetect.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/security-namespaces.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/session-context-integration-defaults.xml delete mode 100644 core/src/test/resources/org/acegisecurity/config/user.properties diff --git a/core/src/main/java/org/acegisecurity/config/AccessDeniedHandlerBeanDefinitionLocator.java b/core/src/main/java/org/acegisecurity/config/AccessDeniedHandlerBeanDefinitionLocator.java deleted file mode 100644 index d3daa70e90..0000000000 --- a/core/src/main/java/org/acegisecurity/config/AccessDeniedHandlerBeanDefinitionLocator.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.acegisecurity.ui.AccessDeniedHandler; -import org.acegisecurity.ui.ExceptionTranslationFilter; -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.RootBeanDefinition; -import org.springframework.util.Assert; - -/** - * @author vpuri - * - */ -public class AccessDeniedHandlerBeanDefinitionLocator implements BeanFactoryPostProcessor { - - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - - Map m = beanFactory.getBeansOfType(AccessDeniedHandler.class); - - List l = new ArrayList(m.values()); - - - - if (m.size() > 1) { - throw new IllegalArgumentException( - "More than one AccessDeniedHandler beans detected please refer to the one using " - + " [ accessDeniedBeanRef ] " + "attribute"); - } - else if (m.size() == 1) { - // use this - String[] names = beanFactory.getBeanNamesForType(ExceptionTranslationFilter.class); - Assert.notEmpty(names, "No bean of type ExceptionTranslationFilter found in ApplicationContext"); - RootBeanDefinition definition = (RootBeanDefinition) beanFactory.getBeanDefinition(names[0]); - Assert.isAssignable(AccessDeniedHandler.class, l.get(0).getClass()); - definition.getPropertyValues().addPropertyValue("accessDeniedHandler", l.get(0)); - } - else { - // use the default one for now - } - - } -} diff --git a/core/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java deleted file mode 100644 index 12821ba25d..0000000000 --- a/core/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.providers.ProviderManager; -import org.springframework.beans.factory.config.BeanDefinitionHolder; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * @author vpuri - * - */ -public class AuthenticationMechanismBeanDefinitionParser extends AbstractBeanDefinitionParser implements - BeanDefinitionParser { - - private static final String AUTHENTICATION_JDBC = "authentication-jdbc"; - - private static final String REF = "ref"; - - private boolean providerExists = false; - - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - - ManagedList providers = new ManagedList(); - Assert.notNull(parserContext, "ParserContext must not be null"); - RootBeanDefinition authMechanismBeanDef = new RootBeanDefinition(ProviderManager.class); - NodeList childNodes = element.getChildNodes(); - - for (int i = 0, n = childNodes.getLength(); i < n; i++) { - Node node = childNodes.item(i); - - if (node.getNodeType() == Node.ELEMENT_NODE) { - Element childElement = (Element) node; - this.providerExists = true; - - if (AUTHENTICATION_JDBC.equals(node.getLocalName())) { - String attribute = childElement.getAttribute(REF); - if (StringUtils.hasLength(attribute)) { - // create a beandefinition - providers.add(new RuntimeBeanReference(attribute)); - } - - } - // TODO:Add other providers here - } - authMechanismBeanDef.getPropertyValues().addPropertyValue("providers", providers); - - } - - if (!this.providerExists) { - RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(AuthenticationProviderOrderResolver.class); - BeanDefinitionHolder beanDefinitionHolder = new BeanDefinitionHolder(rootBeanDefinition, - "providerOrderResolver"); - registerBeanDefinition(beanDefinitionHolder, parserContext.getRegistry()); - } - - return authMechanismBeanDef; - - } -} diff --git a/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterBeanDefinitionParser.java deleted file mode 100644 index c6ce35ac26..0000000000 --- a/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterBeanDefinitionParser.java +++ /dev/null @@ -1,58 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.ui.webapp.AuthenticationProcessingFilter; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * @author vpuri - * - */ -public class AuthenticationProcessingFilterBeanDefinitionParser extends AbstractBeanDefinitionParser implements - BeanDefinitionParser { - - // ~ Instance fields - // ================================================================================================ - - private static final String AUTHENTICATION_URL = "authenticationUrl"; - - private static final String ERROR_FORM_URL = "errorFormUrl"; - - private static final String DEFAULT_TARGET_URL = "defaultTargetUrl"; - - // ~ Methods - // ================================================================================================ - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - - RootBeanDefinition definition = new RootBeanDefinition(AuthenticationProcessingFilter.class); - - setPropertyIfAvailable(element, AUTHENTICATION_URL, "filterProcessesUrl", definition); - setPropertyIfAvailable(element, ERROR_FORM_URL, "authenticationFailureUrl", definition); - setPropertyIfAvailable(element, DEFAULT_TARGET_URL, "defaultTargetUrl", definition); - - // register BFPP to re-unite all other collaborators - RootBeanDefinition postProcessor = new RootBeanDefinition( - AuthenticationProcessingFilterDependenciesConfigurer.class); - parserContext.getReaderContext().registerWithGeneratedName(postProcessor); - - return definition; - } - - private void setPropertyIfAvailable(Element element, String attribute, String property, - RootBeanDefinition definition) { - String propertyValue = element.getAttribute(attribute); - if (StringUtils.hasText(propertyValue)) { - definition.getPropertyValues().addPropertyValue(property, propertyValue); - } - } - -} diff --git a/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterDependenciesConfigurer.java b/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterDependenciesConfigurer.java deleted file mode 100644 index e134f41870..0000000000 --- a/core/src/main/java/org/acegisecurity/config/AuthenticationProcessingFilterDependenciesConfigurer.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.AuthenticationManager; -import org.acegisecurity.ui.rememberme.RememberMeServices; -import org.acegisecurity.ui.webapp.AuthenticationProcessingFilter; -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.RootBeanDefinition; - -/** - * @author vpuri - * - */ -public class AuthenticationProcessingFilterDependenciesConfigurer implements BeanFactoryPostProcessor { - - // ~ Methods - // ================================================================================================ - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - - String [] authenticationProcessingFilter = beanFactory.getBeanNamesForType(AuthenticationProcessingFilter.class); - - RootBeanDefinition def = (RootBeanDefinition)beanFactory.getBeanDefinition(authenticationProcessingFilter[0]); - - String[] remServiceNames = beanFactory.getBeanNamesForType(RememberMeServices.class); - - RootBeanDefinition rememberMeServices = (RootBeanDefinition) beanFactory.getBeanDefinition(remServiceNames[0]); - - if (remServiceNames.length > 0) - def.getPropertyValues() - .addPropertyValue("rememberMeServices", rememberMeServices); - - String[] authManager = beanFactory.getBeanNamesForType(AuthenticationManager.class); - - RootBeanDefinition authenticationManager = (RootBeanDefinition) beanFactory.getBeanDefinition(authManager[0]); - - if (authManager.length > 0) - def.getPropertyValues().addPropertyValue("authenticationManager", authenticationManager); - } -} diff --git a/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java b/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java deleted file mode 100644 index 7685d60714..0000000000 --- a/core/src/main/java/org/acegisecurity/config/AuthenticationProviderOrderResolver.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.acegisecurity.config; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -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; - -public class AuthenticationProviderOrderResolver implements BeanFactoryPostProcessor { - - /** - * - */ - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - // retrieve all the AuthenticationProvider instances - ManagedList providers = retrieveAllAuthenticationProviders(beanFactory); - String[] names = beanFactory.getBeanNamesForType(AuthenticationManager.class); - RootBeanDefinition definition = (RootBeanDefinition)beanFactory.getBeanDefinition(names[0]); - definition.getPropertyValues().addPropertyValue("providers",providers); - } - /** - * - * @param beanFactory - * @return - */ - private ManagedList retrieveAllAuthenticationProviders(ConfigurableListableBeanFactory beanFactory) { - String[] m = beanFactory.getBeanNamesForType(AuthenticationProvider.class); - ManagedList l = new ManagedList(); - for(int i=0;i 1 such handlers, we can nominate the one to use via - * accessDeniedBeanRef; - * - * @author vpuri - * @since - */ -public class ExceptionTranslationFilterBeanDefinitionParser extends AbstractBeanDefinitionParser { - - private static final String ACCESS_DENIED = "access-denied"; - - private static final String ACCESS_DENIED_REF = "accessDeniedBeanRef"; - - private static final String ACCESS_DENIED_URL = "accessDeniedUrl"; - - private static final String ENTRY_POINT = "entry-point"; - - private static final String ENTRY_POINT_REF ="entryPointBeanRef"; - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - - RootBeanDefinition exceptionFilterDef = new RootBeanDefinition(ExceptionTranslationFilter.class); - - // add handler - Element accessDeniedElement = DomUtils.getChildElementByTagName(element, ACCESS_DENIED); - setAccessDeniedHandlerProperty(parserContext, exceptionFilterDef, accessDeniedElement); - - Element entryPointElement = DomUtils.getChildElementByTagName(element, ENTRY_POINT); - setEntryPointProperty(exceptionFilterDef, entryPointElement); - - return exceptionFilterDef; - } - - private void setEntryPointProperty(RootBeanDefinition exceptionFilterDef, Element entryPointElement) { - if (entryPointElement != null) { - setBeanReferenceOrInnerBeanDefinitions(exceptionFilterDef, entryPointElement, "authenticationEntryPoint", - entryPointElement.getAttribute(ENTRY_POINT_REF)); - } - } - - /** - * - * @param parserContext - * @param repositoryBeanDef - * @param element - */ - private void setAccessDeniedHandlerProperty(ParserContext parserContext, RootBeanDefinition exceptionFilterDef, - Element accessDeniedElement) { - if (accessDeniedElement != null) { - setBeanReferenceOrInnerBeanDefinitions(exceptionFilterDef, accessDeniedElement, "accessDeniedHandler", - accessDeniedElement.getAttribute(ACCESS_DENIED_REF)); - } - else { - // register BFPP to check if handler exist in application context, - // if > 1 throw error saying ref should be specified as there are - // more than one - RootBeanDefinition accessDeniedHandlerLocatorBeanDef = new RootBeanDefinition( - AccessDeniedHandlerBeanDefinitionLocator.class); - parserContext.getReaderContext().registerWithGeneratedName(accessDeniedHandlerLocatorBeanDef); - } - } - - /** - * - * @param repositoryBeanDef - * @param element - * @param property - * @param reference - */ - private void setBeanReferenceOrInnerBeanDefinitions(RootBeanDefinition exceptionFilterDef, - Element element, String property, String beanRef) { - // check for encoderBeanRef attribute - if (StringUtils.hasLength(beanRef)) { - exceptionFilterDef.getPropertyValues().addPropertyValue(property, - new RuntimeBeanReference(beanRef)); - } - else { - doSetInnerBeanDefinitions(exceptionFilterDef, element, property); - } - } - - /** - * - * @param repositoryBeanDef - * @param element - * @param property - */ - private void doSetInnerBeanDefinitions(RootBeanDefinition exceptionFilterDef, Element accessDeniedElement, - String property) { - RootBeanDefinition accessDeniedHandlerBeanDef = new RootBeanDefinition(AccessDeniedHandlerImpl.class); - setPropertyIfAvailable(accessDeniedElement, ACCESS_DENIED_URL, "errorPage", accessDeniedHandlerBeanDef); - exceptionFilterDef.getPropertyValues().addPropertyValue(property, accessDeniedHandlerBeanDef); - - } - - private void setPropertyIfAvailable(Element element, String attribute, String property, - RootBeanDefinition definition) { - String propertyValue = element.getAttribute(attribute); - if (StringUtils.hasText(propertyValue)) { - definition.getPropertyValues().addPropertyValue(property, propertyValue); - } - } -} diff --git a/core/src/main/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParser.java deleted file mode 100644 index 9c81a1bd82..0000000000 --- a/core/src/main/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParser.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.ui.logout.LogoutFilter; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * @author vpuri - * @since - */ -public class LogoutFilterBeanDefinitionParser extends AbstractBeanDefinitionParser { - - // ~ Instance fields - // ================================================================================================ - private static final String REDIRECT_AFTER_LOGOUT_URL = "redirectAfterLogoutUrl"; - - private static final String LOGOUT_URL = "logoutUrl"; - - // ~ Methods - // ================================================================================================ - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - - // add the properties - RootBeanDefinition definition = new RootBeanDefinition(LogoutFilter.class); - setConstructorArgumentIfAvailable(0, element, REDIRECT_AFTER_LOGOUT_URL, "logoutSuccessUrl", definition); - - setPropertyIfAvailable(element, LOGOUT_URL, "filterProcessesUrl", definition); - - // register BFPP to check if LogoutFilter does not have setHandlers - // populated, introspect app ctx for LogoutHandlers, using Ordered (if - // present, otherwise assume Integer.MAX_VALUE) - RootBeanDefinition bfpp = new RootBeanDefinition(LogoutHandlerOrderResolver.class); - parserContext.getReaderContext().registerWithGeneratedName(bfpp); - - return definition; - } - - private void setConstructorArgumentIfAvailable(int index, Element element, String attribute, String property, - RootBeanDefinition definition) { - String propertyValue = element.getAttribute(attribute); - if (StringUtils.hasText(propertyValue)) { - definition.getConstructorArgumentValues().addIndexedArgumentValue(index, propertyValue); - } - } - - private void setPropertyIfAvailable(Element element, String attribute, String property, - RootBeanDefinition definition) { - String propertyValue = element.getAttribute(attribute); - if (StringUtils.hasText(propertyValue)) { - definition.getPropertyValues().addPropertyValue(property, propertyValue); - } - } - - // - -} diff --git a/core/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java b/core/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java deleted file mode 100644 index baa3c06a3a..0000000000 --- a/core/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java +++ /dev/null @@ -1,95 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import java.util.Collections; -import java.util.List; - -import org.acegisecurity.ui.logout.LogoutFilter; -import org.acegisecurity.ui.logout.LogoutHandler; -import org.acegisecurity.ui.logout.SecurityContextLogoutHandler; -import org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.ConstructorArgumentValues.ValueHolder; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.core.OrderComparator; -import org.springframework.core.Ordered; - -/** - * @author vpuri - * @since - */ -public class LogoutHandlerOrderResolver implements BeanFactoryPostProcessor { - - // ~ Methods - // ================================================================================================ - - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - // If LogoutFilter does not have setHandlers populated, introspect app - // ctx for LogoutHandlers, using Ordered (if present, otherwise assume - // Integer.MAX_VALUE) - String[] names = beanFactory.getBeanNamesForType(LogoutFilter.class); - RootBeanDefinition definition = (RootBeanDefinition) beanFactory.getBeanDefinition(names[0]); - ValueHolder holder = getHandlersIfConfigured(beanFactory, definition); - if (holder == null) { - // intropect the appcontext for registerd LogoutHandler - List logoutHandlers = retrieveAllLogoutHandlers(beanFactory); - definition.getConstructorArgumentValues().addIndexedArgumentValue(1, logoutHandlers); - } - } - - /** - * - * @param beanFactory - * @param definition - * @return - */ - private ValueHolder getHandlersIfConfigured(ConfigurableListableBeanFactory beanFactory, - RootBeanDefinition definition) { - // there should be only one LogoutFilter - return definition.getConstructorArgumentValues().getArgumentValue(1, null); - - } - - /** - * - * @param beanFactory - * @return - */ - private List retrieveAllLogoutHandlers(ConfigurableListableBeanFactory beanFactory) { - String[] names = beanFactory.getBeanNamesForType(LogoutHandler.class); - ManagedList list = new ManagedList(); - - for (int i = 0, n = names.length; i < n; i++) { - RootBeanDefinition definition = (RootBeanDefinition) beanFactory.getBeanDefinition(names[i]); - - if (definition.hasBeanClass()) { - if (Ordered.class.isAssignableFrom(definition.getBeanClass())) { - definition.getPropertyValues().addPropertyValue("order", - new Integer(getOrder(definition.getBeanClass()))); - } - else { - definition.getPropertyValues().addPropertyValue("order", new Integer(Integer.MAX_VALUE)); - } - } - list.add(definition); - } - Collections.sort(list, new OrderComparator()); - return list; - } - - private int getOrder(Class clazz) { - if (clazz.getName().equals(TokenBasedRememberMeServices.class.getName())) { - return 100; - } - if (clazz.getName().equals(SecurityContextLogoutHandler.class.getName())) { - return 200; - } - return Integer.MAX_VALUE; - } - -} diff --git a/core/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java deleted file mode 100644 index 581c95f74f..0000000000 --- a/core/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java +++ /dev/null @@ -1,235 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import java.util.Properties; - -import org.acegisecurity.GrantedAuthorityImpl; -import org.acegisecurity.userdetails.User; -import org.acegisecurity.userdetails.UserDetails; -import org.acegisecurity.userdetails.jdbc.JdbcDaoImpl; -import org.acegisecurity.userdetails.memory.InMemoryDaoImpl; -import org.acegisecurity.userdetails.memory.UserAttribute; -import org.acegisecurity.userdetails.memory.UserMap; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.springframework.beans.factory.config.PropertiesFactoryBean; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.BeanDefinitionBuilder; -import org.springframework.beans.factory.support.ManagedList; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * @author vpuri - * - */ -public class PrincipalRepositoryBeanDefinitionParser extends AbstractBeanDefinitionParser implements - BeanDefinitionParser { - - // ~ Static fields/initializers ===================================================================================== - - private static final Log logger = LogFactory.getLog(PrincipalRepositoryBeanDefinitionParser.class); - - // ~ Instance fields - // ================================================================================================ - private static final String JDBC = "jdbc"; - - private static final String DATASOURCE_REF = "dataSourceBeanRef"; - - private static final String DATASOURCE = "dataSource"; - - private static final String JDBCTEMPLATE_REF = "jdbcTemplateBeanRef"; - - private static final String JDBCTEMPLATE = "jdbcTemplate"; - - private static final String AUTHORITIES_BY_USERNAME_QUERY = "authoritiesByUsernameQuery"; - - private static final String ROLE_PREFIX = "rolePrefix"; - - private static final String USERNAME_BASED_PRIMARY_KEY = "usernameBasedPrimaryKey"; - - private static final String PROPERTIES = "properties"; - - private static final String RESOURCE = "resource"; - - private static final String USER_PROPERTIES = "userProperties"; - - private static final String USER_DEFINITION = "user-definition"; - - private static final Object GRANTED_AUTHORITY = "granted-authority"; - - private static final String USERNAME = "username"; - - private static final String PASSWORD = "password"; - - private static final String ENABLED = "enabled"; - - private static final String GRANTED_AUTHORITY_REF = "granted-authority-ref"; - - private static final String AUTHORITY = "authority"; - - private static final String AUTHORITY_BEAN_REF="authorityBeanRef"; - - // ~ Method - // ================================================================================================ - /** - * - */ - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - NodeList userDetailsServiceChildren = element.getChildNodes(); - RootBeanDefinition userDetailsServiceDefinition = null; - for (int i = 0, n = userDetailsServiceChildren.getLength(); i < n; i++) { - Node userDetailsService = userDetailsServiceChildren.item(i); - - if (JDBC.equals(userDetailsService.getLocalName()) && userDetailsService.getNodeType() == Node.ELEMENT_NODE) { - Element ele = (Element) userDetailsService; - userDetailsServiceDefinition = parseUserDetailsServiceJdbcDefinition(ele); - userDetailsServiceDefinition.setSource(parserContext.extractSource(element)); - parserContext.getReaderContext().registerWithGeneratedName(userDetailsServiceDefinition); - } - if (PROPERTIES.equals(userDetailsService.getLocalName()) - && userDetailsService.getNodeType() == Node.ELEMENT_NODE) { - Element ele = (Element) userDetailsService; - - userDetailsServiceDefinition = new RootBeanDefinition(InMemoryDaoImpl.class); - userDetailsServiceDefinition.getPropertyValues().addPropertyValue(USER_PROPERTIES, - new RuntimeBeanReference(createPropertiesBeanDefinition(ele, parserContext))); - userDetailsServiceDefinition.setSource(parserContext.extractSource(element)); - parserContext.getReaderContext().registerWithGeneratedName(userDetailsServiceDefinition); - } - if (USER_DEFINITION.equals(userDetailsService.getLocalName()) - && userDetailsService.getNodeType() == Node.ELEMENT_NODE) { - Element ele = (Element) userDetailsService; - - // create a UserMap which interns uses UserMapEditor - userDetailsServiceDefinition = createUserDefinition(ele, parserContext); - } - } - return userDetailsServiceDefinition; - } - - private RootBeanDefinition createUserDefinition(Element ele, ParserContext parserContext) { - RootBeanDefinition definition = new RootBeanDefinition(InMemoryDaoImpl.class); - - UserAttribute userAttribute = new UserAttribute(); - UserMap userMap = new UserMap(); - - setPassword(ele, userAttribute); - setEnabled(ele, userAttribute); - setAuthorities(ele, userAttribute); - - UserDetails user = new User(ele.getAttribute(USERNAME), userAttribute.getPassword(), userAttribute.isEnabled(), - true, true, true, userAttribute.getAuthorities()); - userMap.addUser(user); - definition.getPropertyValues().addPropertyValue("userMap", userMap); - return definition; - - } - - private String createPropertiesBeanDefinition(Element ele, ParserContext parserContext) { - // properties element - RootBeanDefinition defintion = new RootBeanDefinition(PropertiesFactoryBean.class); - String propertyValue = ele.getAttribute(RESOURCE); - defintion.getPropertyValues().addPropertyValue("location", propertyValue); - defintion.setSource(parserContext.extractSource(ele)); - return parserContext.getReaderContext().registerWithGeneratedName(defintion); - } - - /** - * - * @param elementToParse - * @return - */ - private RootBeanDefinition parseUserDetailsServiceJdbcDefinition(Element elementToParse) { - // parse attributes - RootBeanDefinition definition = new RootBeanDefinition(JdbcDaoImpl.class); - setPropertyIfAvailable(elementToParse, DATASOURCE_REF, DATASOURCE, definition); - setPropertyIfAvailable(elementToParse, JDBCTEMPLATE_REF, JDBCTEMPLATE, definition); - setPropertyIfAvailable(elementToParse, AUTHORITIES_BY_USERNAME_QUERY, AUTHORITIES_BY_USERNAME_QUERY, definition); - setPropertyIfAvailable(elementToParse, ROLE_PREFIX, ROLE_PREFIX, definition); - setPropertyIfAvailable(elementToParse, USERNAME_BASED_PRIMARY_KEY, USERNAME_BASED_PRIMARY_KEY, definition); - return definition; - } - - protected void doParseProperties(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { - Properties parsedProps = parserContext.getDelegate().parsePropsElement(element); - builder.addPropertyValue(PROPERTIES, parsedProps); - } - - /** - * - * @param element - * @param attribute - * @param property - * @param definition - */ - private void setPropertyIfAvailable(Element element, String attribute, String property, - RootBeanDefinition definition) { - String propertyValue = element.getAttribute(attribute); - if (StringUtils.hasText(propertyValue)) { - if (propertyValue.equals(DATASOURCE_REF) || propertyValue.equals(JDBCTEMPLATE_REF)) { - definition.getPropertyValues().addPropertyValue(property, new RuntimeBeanReference(propertyValue)); - } - else { - definition.getPropertyValues().addPropertyValue(property, propertyValue); - } - } - } - - private void setPassword(Element element, UserAttribute userAttribute) { - String propertyValue = element.getAttribute(PASSWORD); - if (StringUtils.hasText(propertyValue)) { - userAttribute.setPassword(propertyValue); - } - } - - private void setEnabled(Element element, UserAttribute userAttribute) { - String propertyValue = element.getAttribute(ENABLED); - if (StringUtils.hasText(propertyValue)) { - if (propertyValue.equals("true")) { - userAttribute.setEnabled(true); - } - else { - userAttribute.setEnabled(false); - } - } - } - - private void setAuthorities(Element ele, UserAttribute userAttribute) { - // get authorities - NodeList childNodes = ele.getChildNodes(); - - ManagedList authorities = new ManagedList(); - - for (int i = 0, n = childNodes.getLength(); i < n; i++) { - Node authorityNode = childNodes.item(i); - - if (GRANTED_AUTHORITY.equals(authorityNode.getLocalName()) - && authorityNode.getNodeType() == Element.ELEMENT_NODE) { - Element propertyValue = (Element) authorityNode; - authorities.add(new GrantedAuthorityImpl(propertyValue.getAttribute(AUTHORITY))); - } - - if (GRANTED_AUTHORITY_REF.equals(authorityNode.getLocalName()) - && authorityNode.getNodeType() == Element.ELEMENT_NODE) { - Element propertyValue = (Element) authorityNode; - String attribute = propertyValue.getAttribute(AUTHORITY_BEAN_REF); - if (StringUtils.hasLength(attribute)) { - authorities.add(new RuntimeBeanReference(attribute)); - } - } - } - userAttribute.setAuthorities(authorities); - } - -} diff --git a/core/src/main/java/org/acegisecurity/config/RemeberMeServicesDependenciesConfigurer.java b/core/src/main/java/org/acegisecurity/config/RemeberMeServicesDependenciesConfigurer.java deleted file mode 100644 index 24f1b68b8e..0000000000 --- a/core/src/main/java/org/acegisecurity/config/RemeberMeServicesDependenciesConfigurer.java +++ /dev/null @@ -1,35 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.ui.rememberme.RememberMeServices; -import org.acegisecurity.userdetails.UserDetailsService; -import org.springframework.beans.BeansException; -import org.springframework.beans.factory.config.BeanFactoryPostProcessor; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.RootBeanDefinition; - -/** - * @author vpuri - * - */ -public class RemeberMeServicesDependenciesConfigurer implements BeanFactoryPostProcessor { - - public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { - - String [] userDetailServices = beanFactory.getBeanNamesForType(UserDetailsService.class); - - String [] rememberMeService = beanFactory.getBeanNamesForType(RememberMeServices.class); - - RootBeanDefinition definition=(RootBeanDefinition) beanFactory.getBeanDefinition(rememberMeService[0]); - - // there should be only one principal-repository defined, pick the first one - if(userDetailServices.length!=0) { - definition.getPropertyValues().addPropertyValue("userDetailsService", new RuntimeBeanReference(userDetailServices[0])); - } - - } - -} diff --git a/core/src/main/java/org/acegisecurity/config/RememberMeFilterBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/RememberMeFilterBeanDefinitionParser.java deleted file mode 100644 index 0d56d8aa2e..0000000000 --- a/core/src/main/java/org/acegisecurity/config/RememberMeFilterBeanDefinitionParser.java +++ /dev/null @@ -1,49 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.ui.rememberme.RememberMeProcessingFilter; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * @author vpuri - * - *@since - */ -public class RememberMeFilterBeanDefinitionParser extends AbstractBeanDefinitionParser { - - private static final String REMEMBER_ME_SERVICES_REF = "rememberMeServicesBeanRef"; - - private static final String REMEMBER_ME_SERVICES = "rememberMeServices"; - - - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - Assert.notNull(parserContext, "ParserContext must not be null"); - - RootBeanDefinition rememberMeFilterBeanDef = new RootBeanDefinition(RememberMeProcessingFilter.class); - - // detect all the required dependencies and autowire them by type - rememberMeFilterBeanDef.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_AUTODETECT); - - // check if rememberMeServicesBeanRef is defined and if it's specified use its referred bean - String rememberMeServicesRef = element.getAttribute(REMEMBER_ME_SERVICES_REF); - if (StringUtils.hasLength(rememberMeServicesRef)) { - rememberMeFilterBeanDef.getPropertyValues().addPropertyValue(REMEMBER_ME_SERVICES, - new RuntimeBeanReference(rememberMeServicesRef)); - } - return rememberMeFilterBeanDef; - } - - - - - -} diff --git a/core/src/main/java/org/acegisecurity/config/RememberMeServicesBeanDefinitionParser.java b/core/src/main/java/org/acegisecurity/config/RememberMeServicesBeanDefinitionParser.java deleted file mode 100644 index 61fee2d62d..0000000000 --- a/core/src/main/java/org/acegisecurity/config/RememberMeServicesBeanDefinitionParser.java +++ /dev/null @@ -1,62 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.AbstractBeanDefinition; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.AbstractBeanDefinitionParser; -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.ParserContext; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; -import org.w3c.dom.Element; - -/** - * @author vpuri - * - */ -public class RememberMeServicesBeanDefinitionParser extends AbstractBeanDefinitionParser implements - BeanDefinitionParser { - - private static final String PRINCIPAL_REPOSITORY_BEAN_REF = "principalRepositoryBeanRef"; - - private static final String USER_DETAILS_SERVICE_PROPERTY = "userDetailsService"; - - /* - * key is optional; if unspecified, pick a rnd int and use for all unspecified key properties for acegi beans - */ - private static final String KEY = "key"; - - /** - * - */ - protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) { - Assert.notNull(parserContext, "ParserContext must not be null"); - - RootBeanDefinition rememberMeServicesBeanDef = new RootBeanDefinition(TokenBasedRememberMeServices.class); - - String keyValue = element.getAttribute(KEY); - if (StringUtils.hasLength(keyValue)) { - rememberMeServicesBeanDef.getPropertyValues().addPropertyValue(KEY,keyValue); - } else { - // pick a rnd int - } - - // check if rememberMeServicesBeanRef is defined and if it's specified use its referred bean - String rememberMeServicesRef = element.getAttribute(PRINCIPAL_REPOSITORY_BEAN_REF); - if (StringUtils.hasLength(rememberMeServicesRef)) { - rememberMeServicesBeanDef.getPropertyValues().addPropertyValue(USER_DETAILS_SERVICE_PROPERTY, - new RuntimeBeanReference(rememberMeServicesRef)); - } - else { - // register a bean definition parse - RootBeanDefinition configurer = new RootBeanDefinition(RemeberMeServicesDependenciesConfigurer.class); - parserContext.getReaderContext().registerWithGeneratedName(configurer); - } - return rememberMeServicesBeanDef; - } - -} diff --git a/core/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java b/core/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java deleted file mode 100644 index 31113b0a31..0000000000 --- a/core/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java +++ /dev/null @@ -1,33 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.springframework.beans.factory.xml.BeanDefinitionParser; -import org.springframework.beans.factory.xml.NamespaceHandlerSupport; - -/** - * {@link org.springframework.beans.factory.xml.NamespaceHandler} for the 'security' namespace. - * @author vpuri - * - * @since - */ -public class SecurityNamespaceHandler extends NamespaceHandlerSupport { - - /** - * Register the {@link BeanDefinitionParser BeanDefinitionParsers} for the - * 'context-integration', ' and '' elements. - */ - public void init() { - registerBeanDefinitionParser("principal-repository", new PrincipalRepositoryBeanDefinitionParser()); - registerBeanDefinitionParser("session-context-integration", new ContextIntegrationBeanDefinitionParser()); - registerBeanDefinitionParser("authentication-repository", new AuthenticationRepositoryBeanDefinitionParser()); - registerBeanDefinitionParser("authentication-mechanism", new AuthenticationMechanismBeanDefinitionParser()); - registerBeanDefinitionParser("authentication-remember-me-services", new RememberMeServicesBeanDefinitionParser()); - registerBeanDefinitionParser("authentication-remember-me-filter", new RememberMeFilterBeanDefinitionParser()); - registerBeanDefinitionParser("logout-support", new LogoutFilterBeanDefinitionParser()); - registerBeanDefinitionParser("exception-translation", new ExceptionTranslationFilterBeanDefinitionParser()); - registerBeanDefinitionParser("authentication-form", new AuthenticationProcessingFilterBeanDefinitionParser()); - } - -} diff --git a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java index 5133718cf3..dbe6dc1e9d 100644 --- a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java +++ b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java @@ -39,6 +39,7 @@ import org.apache.commons.codec.binary.Base64; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.InitializingBean; +import org.springframework.core.Ordered; import org.springframework.util.Assert; @@ -72,10 +73,10 @@ import org.springframework.util.Assert; * @author Ben Alex * @version $Id$ */ -public class BasicProcessingFilter implements Filter, InitializingBean { +public class BasicProcessingFilter implements Filter, InitializingBean, Ordered { //~ Static fields/initializers ===================================================================================== - private static final Log logger = LogFactory.getLog(BasicProcessingFilter.class); + private static final Log logger = LogFactory.getLog(BasicProcessingFilter.class); //~ Instance fields ================================================================================================ @@ -84,6 +85,7 @@ public class BasicProcessingFilter implements Filter, InitializingBean { private AuthenticationManager authenticationManager; private RememberMeServices rememberMeServices; private boolean ignoreFailure = false; + private int order; //~ Methods ======================================================================================================== @@ -226,4 +228,12 @@ public class BasicProcessingFilter implements Filter, InitializingBean { public void setRememberMeServices(RememberMeServices rememberMeServices) { this.rememberMeServices = rememberMeServices; } + + public int getOrder() { + return order; + } + + public void setOrder(int order) { + this.order = order; + } } diff --git a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java index b3a09c2421..30aaec08d1 100644 --- a/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java +++ b/core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java @@ -16,6 +16,7 @@ package org.acegisecurity.ui.basicauth; import java.io.IOException; +import java.util.Map; import javax.servlet.ServletException; import javax.servlet.ServletRequest; @@ -24,8 +25,12 @@ import javax.servlet.http.HttpServletResponse; import org.acegisecurity.AuthenticationException; import org.acegisecurity.ui.AuthenticationEntryPoint; +import org.acegisecurity.util.OrderedUtils; import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; import org.springframework.core.Ordered; +import org.springframework.util.Assert; /** @@ -38,11 +43,13 @@ import org.springframework.core.Ordered; * @author Ben Alex * @version $Id$ */ -public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered { +public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered, ApplicationContextAware { //~ Instance fields ================================================================================================ + private static final int DEFAULT_ORDER = Integer.MAX_VALUE; private String realmName; - private int order = Integer.MAX_VALUE; // ~ default + private int order = DEFAULT_ORDER; + private ApplicationContext applicationContext; //~ Methods ======================================================================================================== @@ -55,9 +62,10 @@ public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint } public void afterPropertiesSet() throws Exception { - if ((realmName == null) || "".equals(realmName)) { - throw new IllegalArgumentException("realmName must be specified"); - } + Assert.hasText(realmName, "realmName must be specified"); + if (order == DEFAULT_ORDER) { + OrderedUtils.copyOrderFromOtherClass(BasicProcessingFilter.class, applicationContext, this, true); + } } public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException) @@ -74,4 +82,8 @@ public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint public void setRealmName(String realmName) { this.realmName = realmName; } + + public void setApplicationContext(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } } diff --git a/core/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd b/core/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd deleted file mode 100644 index dbfe01933c..0000000000 --- a/core/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd +++ /dev/null @@ -1,444 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HttpSession - for every request before proceeding through the filter chain, even if the - HttpSession would not ordinarily have been created. By - default this is false, which is entirely appropriate for - most circumstances as you do not want a HttpSession - created unless the filter actually needs one. It is envisaged the main - situation in which this property would be set to true is - if using other filters that depend on a HttpSession - already existing, such as those which need to obtain a session ID. This - is only required in specialised cases, so leave it set to - false unless you have an actual requirement and are - conscious of the session creation overhead. - ]]> - - - - - - - SecurityContext will be cloned from - the HttpSession. The default is to simply reference (ie - the default is false). The default may cause issues if - concurrent threads need to have a different security identity from other - threads being concurrently processed that share the same - HttpSession. In most normal environments this does not - represent an issue, as changes to the security identity in one thread is - allowed to affect the security identitiy in other threads associated with - the same HttpSession. For unusual cases where this is not - permitted, change this value to true and ensure the - {@link #context} is set to a SecurityContext that - implements {@link Cloneable} and overrides the clone() - method. - ]]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/java/org/acegisecurity/config/AuthenticationProcessingFilterNamespaceTests.java b/core/src/test/java/org/acegisecurity/config/AuthenticationProcessingFilterNamespaceTests.java deleted file mode 100644 index 7a849525b6..0000000000 --- a/core/src/test/java/org/acegisecurity/config/AuthenticationProcessingFilterNamespaceTests.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -import junit.framework.TestCase; - -/** - * @author vpuri - * - */ -public class AuthenticationProcessingFilterNamespaceTests extends TestCase { - - public void testAuthenticationFilterBeanDefinition() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/authentication-form-filter.xml"); -ConfigurableListableBeanFactory factory = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - } - -} diff --git a/core/src/test/java/org/acegisecurity/config/AuthenticationRepositoryParserTest.java b/core/src/test/java/org/acegisecurity/config/AuthenticationRepositoryParserTest.java deleted file mode 100644 index f91bc67d40..0000000000 --- a/core/src/test/java/org/acegisecurity/config/AuthenticationRepositoryParserTest.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import junit.framework.TestCase; - -import org.acegisecurity.providers.AuthenticationProvider; -import org.acegisecurity.providers.dao.DaoAuthenticationProvider; -import org.acegisecurity.providers.dao.SaltSource; -import org.acegisecurity.providers.encoding.Md5PasswordEncoder; -import org.acegisecurity.providers.encoding.PasswordEncoder; -import org.acegisecurity.providers.encoding.PlaintextPasswordEncoder; -import org.acegisecurity.userdetails.jdbc.JdbcDaoImpl; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.util.Assert; - -/** - * @author vpuri - * - */ -public class AuthenticationRepositoryParserTest extends TestCase { - - public void testAuthenticationRepositoryDefaultWithAutoUserdetails() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/authentication-dao-defaults.xml"); - ConfigurableListableBeanFactory clbf = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - - String[] names = clbf.getBeanNamesForType(AuthenticationProvider.class); - assertEquals(1, names.length); - - // check bean class - RootBeanDefinition definition = (RootBeanDefinition) clbf.getBeanDefinition(names[0]); - assertEquals(DaoAuthenticationProvider.class, definition.getBeanClass()); - - DaoAuthenticationProvider provider = (DaoAuthenticationProvider) context.getBean("authenticationRepository"); - Assert.isAssignable(JdbcDaoImpl.class, provider.getUserDetailsService().getClass()); - - } - - public void testCollaboratorsAsInnerBeans() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/authentication-innerbeans.xml"); - ConfigurableListableBeanFactory clbf = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - // get the main bean definition, there should be only one - String[] names = clbf.getBeanNamesForType(AuthenticationProvider.class); - assertEquals(1, names.length); - RootBeanDefinition definition = (RootBeanDefinition) clbf.getBeanDefinition(names[0]); - assertEquals(DaoAuthenticationProvider.class, definition.getBeanClass()); - - // get the 2 inner beans - PropertyValue saltSourceBean = definition.getPropertyValues().getPropertyValue("saltSource"); - assertEquals("saltSource", saltSourceBean.getName()); - - // get the BeanDefinition - RootBeanDefinition saltsourceDef = (RootBeanDefinition) saltSourceBean.getValue(); - Assert.isAssignable(SaltSource.class, saltsourceDef.getBeanClass()); - - PropertyValue encoder = definition.getPropertyValues().getPropertyValue("passwordEncoder"); - assertEquals("passwordEncoder", encoder.getName()); - - // get the BeanDefinition - RootBeanDefinition encoderDef = (RootBeanDefinition) encoder.getValue(); - Assert.isAssignable(PasswordEncoder.class, encoderDef.getBeanClass()); - - assertEquals("incorrect bean class name", encoderDef.getBeanClassName(), Md5PasswordEncoder.class.getName()); - } - - public void testCollaboratorsAsBeanRef() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/authentication-beanRef-attributes.xml"); - ConfigurableListableBeanFactory clbf = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - // get the main bean definition, there should be only one - String[] names = clbf.getBeanNamesForType(AuthenticationProvider.class); - assertEquals(1, names.length); - RootBeanDefinition definition = (RootBeanDefinition) clbf.getBeanDefinition(names[0]); - assertEquals(DaoAuthenticationProvider.class, definition.getBeanClass()); - - // get the referred collaborators - - PropertyValue userDetailsBean = definition.getPropertyValues().getPropertyValue("userDetailsService"); - assertEquals("userDetailsService", userDetailsBean.getName()); - - PropertyValue saltSourceBean = definition.getPropertyValues().getPropertyValue("saltSource"); - assertEquals("saltSource", saltSourceBean.getName()); - - // get the BeanDefinition - RuntimeBeanReference saltsourceDef = (RuntimeBeanReference) saltSourceBean.getValue(); - assertEquals("refToSaltSource", saltsourceDef.getBeanName()); - - PropertyValue encoder = definition.getPropertyValues().getPropertyValue("passwordEncoder"); - assertEquals("passwordEncoder", encoder.getName()); - - // get the BeanDefinition - RuntimeBeanReference encoderDef = (RuntimeBeanReference) encoder.getValue(); - assertEquals("refToPasswordEncoder", encoderDef.getBeanName()); - - DaoAuthenticationProvider provider = (DaoAuthenticationProvider) context.getBean("authenticationRepository"); - assertTrue(provider.getPasswordEncoder() instanceof PasswordEncoder); - assertEquals(Md5PasswordEncoder.class, provider.getPasswordEncoder().getClass()); - } - - public void testAutodetectionOfUserDetailsService() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/authentication-defaults.xml"); - DaoAuthenticationProvider provider = (DaoAuthenticationProvider) context.getBean("authenticationRepository"); - assertNotNull(provider.getUserDetailsService()); - assertNull(provider.getSaltSource()); - assertEquals(PlaintextPasswordEncoder.class, provider.getPasswordEncoder().getClass()); - - } -} diff --git a/core/src/test/java/org/acegisecurity/config/ExceptionTranslationParserTests.java b/core/src/test/java/org/acegisecurity/config/ExceptionTranslationParserTests.java deleted file mode 100644 index f38282233a..0000000000 --- a/core/src/test/java/org/acegisecurity/config/ExceptionTranslationParserTests.java +++ /dev/null @@ -1,47 +0,0 @@ -package org.acegisecurity.config; - -import javax.servlet.Filter; - -import junit.framework.TestCase; - -import org.acegisecurity.ui.ExceptionTranslationFilter; -import org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.config.RuntimeBeanReference; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -public class ExceptionTranslationParserTests extends TestCase { - - public void testParsingBeanReferences() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/exception-translation-beanref.xml"); - ConfigurableListableBeanFactory factory = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - String[] beanNames = factory.getBeanNamesForType(Filter.class); - assertEquals(1, beanNames.length); - RootBeanDefinition def = (RootBeanDefinition) factory.getBeanDefinition(beanNames[0]); - assertEquals(ExceptionTranslationFilter.class.getName(), def.getBeanClassName()); - // check collaborators - PropertyValue accessDeniedHandler = def.getPropertyValues().getPropertyValue("accessDeniedHandler"); - assertNotNull(accessDeniedHandler); - assertEquals(accessDeniedHandler.getValue(), new RuntimeBeanReference("theBeanToUse")); - PropertyValue entryPoint = def.getPropertyValues().getPropertyValue("authenticationEntryPoint"); - assertNotNull(entryPoint); - assertEquals(entryPoint.getValue(), new RuntimeBeanReference("authenticationProcessingFilterEntryPoint")); - } - - public void testRuntimeBeanDependencies() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/exception-translation-beanref.xml"); - ExceptionTranslationFilter filter = (ExceptionTranslationFilter) context.getBean("exceptionTranslationFilter"); - AuthenticationProcessingFilterEntryPoint entryPoint = (AuthenticationProcessingFilterEntryPoint) filter - .getAuthenticationEntryPoint(); - assertEquals("/acegilogin.jsp", entryPoint.getLoginFormUrl()); - assertFalse(entryPoint.getForceHttps()); - - } - -} diff --git a/core/src/test/java/org/acegisecurity/config/HttpSessionContextIntegrationParserTest.java b/core/src/test/java/org/acegisecurity/config/HttpSessionContextIntegrationParserTest.java deleted file mode 100644 index 09f05815a6..0000000000 --- a/core/src/test/java/org/acegisecurity/config/HttpSessionContextIntegrationParserTest.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import javax.servlet.Filter; - -import org.acegisecurity.context.HttpSessionContextIntegrationFilter; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - - -import junit.framework.TestCase; - -/** - * @author vpuri - * - */ -public class HttpSessionContextIntegrationParserTest extends TestCase { - - public void testApplicationContext() { - ApplicationContext context = new ClassPathXmlApplicationContext("org/acegisecurity/config/session-context-integration-defaults.xml"); - ConfigurableListableBeanFactory clbf = - (ConfigurableListableBeanFactory)context.getAutowireCapableBeanFactory(); - - String[] names = clbf.getBeanNamesForType(Filter.class); - assertEquals(1, names.length); - - // check bean name - RootBeanDefinition definition = (RootBeanDefinition)clbf.getBeanDefinition(names[0]); - assertEquals(HttpSessionContextIntegrationFilter.class, definition.getBeanClass()); - - // check properties - //get the bean - HttpSessionContextIntegrationFilter filter = (HttpSessionContextIntegrationFilter)context.getBean("httpSessionContextIntegrationFilter"); - assertFalse(filter.isAllowSessionCreation()); - assertNotNull(definition.getPropertyValues().getPropertyValue("allowSessionCreation")); - assertFalse(filter.isForceEagerSessionCreation()); - assertFalse(filter.isCloneFromHttpSession()); - } - -} diff --git a/core/src/test/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParserTests.java b/core/src/test/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParserTests.java deleted file mode 100644 index 68a1b7b8ef..0000000000 --- a/core/src/test/java/org/acegisecurity/config/LogoutFilterBeanDefinitionParserTests.java +++ /dev/null @@ -1,29 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import java.util.Map; - -import junit.framework.TestCase; - -import org.acegisecurity.ui.logout.LogoutHandler; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -/** - * @author vpuri - * - */ -public class LogoutFilterBeanDefinitionParserTests extends TestCase { - - public void testLogoutFilter() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/logout-filter-with-handlers.xml"); - ConfigurableListableBeanFactory bf = (ConfigurableListableBeanFactory) context.getAutowireCapableBeanFactory(); - Map m = bf.getBeansOfType(LogoutHandler.class); - assertEquals(2, m.size()); - } - -} diff --git a/core/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java b/core/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java deleted file mode 100644 index 3640d936e4..0000000000 --- a/core/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * - */ -package org.acegisecurity.config; - -import junit.framework.TestCase; - -import org.acegisecurity.GrantedAuthority; -import org.acegisecurity.GrantedAuthorityImpl; -import org.acegisecurity.userdetails.User; -import org.acegisecurity.userdetails.UserDetailsService; -import org.acegisecurity.userdetails.memory.InMemoryDaoImpl; -import org.acegisecurity.userdetails.memory.UserMap; -import org.springframework.beans.PropertyValue; -import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -/** - * @author vpuri - * - */ -public class PrincipalRepositoryNamespaceTests extends TestCase { - - public void testParserWithUserDefinition() { - ApplicationContext context = new ClassPathXmlApplicationContext( - "org/acegisecurity/config/principal-repository-user-map.xml"); - - ConfigurableListableBeanFactory clbf = (ConfigurableListableBeanFactory) context - .getAutowireCapableBeanFactory(); - - String[] names = clbf.getBeanNamesForType(UserDetailsService.class); - assertEquals(1, names.length); - - RootBeanDefinition definition = (RootBeanDefinition) clbf.getBeanDefinition(names[0]); - assertEquals(InMemoryDaoImpl.class, definition.getBeanClass()); - - UserMap map = new UserMap(); - - GrantedAuthority[] authotities = { new GrantedAuthorityImpl("ROLE_YO"), new GrantedAuthorityImpl("ROLE_YOYO") }; - - User user = new User("vishal", "nottellingya", true, true, true, true, authotities); - - map.addUser(user); - - assertPropertyValues(map, definition, "userMap"); - - } - - private void assertPropertyValues(UserMap assertionValue, RootBeanDefinition definition, String property) { - PropertyValue propertyValue = definition.getPropertyValues().getPropertyValue(property); - assertNotNull(propertyValue); - assertTrue(propertyValue.getValue() instanceof UserMap); - UserMap users = (UserMap) propertyValue.getValue(); - assertTrue(assertionValue.getUserCount() == users.getUserCount()); - assertEquals(assertionValue.getUser("vishal"), users.getUser("vishal")); - assertTrue(users.getUser("vishal").isEnabled()); - assertTrue(users.getUser("vishal").isAccountNonExpired()); - assertTrue(users.getUser("vishal").isAccountNonLocked()); - assertTrue(users.getUser("vishal").isCredentialsNonExpired()); - assertEquals(2, users.getUser("vishal").getAuthorities().length); - assertEquals(new GrantedAuthorityImpl("ROLE_YO"), users.getUser("vishal").getAuthorities()[0]); - assertEquals(new GrantedAuthorityImpl("ROLE_YOYO"), users.getUser("vishal").getAuthorities()[1]); - } -} diff --git a/core/src/test/java/org/acegisecurity/config/RememberMeBeanDefinitionParserTest.java b/core/src/test/java/org/acegisecurity/config/RememberMeBeanDefinitionParserTest.java deleted file mode 100644 index d79557b098..0000000000 --- a/core/src/test/java/org/acegisecurity/config/RememberMeBeanDefinitionParserTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.acegisecurity.config; - -import junit.framework.TestCase; - -import org.springframework.context.ApplicationContext; -import org.springframework.context.support.ClassPathXmlApplicationContext; - -public class RememberMeBeanDefinitionParserTest extends TestCase { - - public void testParserDefaults() { - ApplicationContext context = new ClassPathXmlApplicationContext("org/acegisecurity/config/principal-repository-properties.xml"); - - - } - -} diff --git a/core/src/test/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPointTests.java b/core/src/test/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPointTests.java index ab8f9ee278..a4bcfabec4 100644 --- a/core/src/test/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPointTests.java +++ b/core/src/test/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPointTests.java @@ -19,6 +19,7 @@ import junit.framework.TestCase; import org.acegisecurity.DisabledException; +import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; @@ -69,14 +70,15 @@ public class BasicProcessingFilterEntryPointTests extends TestCase { public void testNormalOperation() throws Exception { BasicProcessingFilterEntryPoint ep = new BasicProcessingFilterEntryPoint(); + ep.setRealmName("hello"); MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI("/some_path"); MockHttpServletResponse response = new MockHttpServletResponse(); - - ep.afterPropertiesSet(); + + //ep.afterPropertiesSet(); String msg = "These are the jokes kid"; ep.commence(request, response, new DisabledException(msg)); diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-basic-filter.xml b/core/src/test/resources/org/acegisecurity/config/authentication-basic-filter.xml deleted file mode 100644 index 5eca57c38b..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-basic-filter.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-beanRef-attributes.xml b/core/src/test/resources/org/acegisecurity/config/authentication-beanRef-attributes.xml deleted file mode 100644 index 43b4967648..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-beanRef-attributes.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - - - 12345 - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-dao-defaults.xml b/core/src/test/resources/org/acegisecurity/config/authentication-dao-defaults.xml deleted file mode 100644 index 6de9406972..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-dao-defaults.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - - - 12345 - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-defaults.xml b/core/src/test/resources/org/acegisecurity/config/authentication-defaults.xml deleted file mode 100644 index d4a24931d9..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-defaults.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-form-filter.xml b/core/src/test/resources/org/acegisecurity/config/authentication-form-filter.xml deleted file mode 100644 index 3187c14593..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-form-filter.xml +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - - - diff --git a/core/src/test/resources/org/acegisecurity/config/authentication-innerbeans.xml b/core/src/test/resources/org/acegisecurity/config/authentication-innerbeans.xml deleted file mode 100644 index f096d01e78..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/authentication-innerbeans.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/exception-translation-autodetect-handler.xml b/core/src/test/resources/org/acegisecurity/config/exception-translation-autodetect-handler.xml deleted file mode 100644 index 2499d50fa9..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/exception-translation-autodetect-handler.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - /acegilogin.jsp - - - false - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/exception-translation-beanref.xml b/core/src/test/resources/org/acegisecurity/config/exception-translation-beanref.xml deleted file mode 100644 index 67d5426a59..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/exception-translation-beanref.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - /acegilogin.jsp - - - false - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/logout-filter-with-handlers.xml b/core/src/test/resources/org/acegisecurity/config/logout-filter-with-handlers.xml deleted file mode 100644 index cf1168fbb1..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/logout-filter-with-handlers.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/principal-repository-jdbc.xml b/core/src/test/resources/org/acegisecurity/config/principal-repository-jdbc.xml deleted file mode 100644 index 543b986f32..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/principal-repository-jdbc.xml +++ /dev/null @@ -1,44 +0,0 @@ - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/principal-repository-properties.xml b/core/src/test/resources/org/acegisecurity/config/principal-repository-properties.xml deleted file mode 100644 index dfe21d29e4..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/principal-repository-properties.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/principal-repository-user-map.xml b/core/src/test/resources/org/acegisecurity/config/principal-repository-user-map.xml deleted file mode 100644 index 4e035ff1d6..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/principal-repository-user-map.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml b/core/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml deleted file mode 100644 index fc11aa49fa..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.hsqldb.jdbcDriver - - - jdbc:hsqldb:mem:test - - - - sa - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/security-autoconfig-autodetect.xml b/core/src/test/resources/org/acegisecurity/config/security-autoconfig-autodetect.xml deleted file mode 100644 index 2a9ea4358e..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/security-autoconfig-autodetect.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/security-namespaces.xml b/core/src/test/resources/org/acegisecurity/config/security-namespaces.xml deleted file mode 100644 index b6d778a655..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/security-namespaces.xml +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - **/*=AUTODETECT_ALL_ORDERED_FILTERS - **/*=filter1,filter2,filter3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/core/src/test/resources/org/acegisecurity/config/session-context-integration-defaults.xml b/core/src/test/resources/org/acegisecurity/config/session-context-integration-defaults.xml deleted file mode 100644 index 1ba0d6483e..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/session-context-integration-defaults.xml +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/core/src/test/resources/org/acegisecurity/config/user.properties b/core/src/test/resources/org/acegisecurity/config/user.properties deleted file mode 100644 index cd5f8e8b31..0000000000 --- a/core/src/test/resources/org/acegisecurity/config/user.properties +++ /dev/null @@ -1,2 +0,0 @@ -vishal=ity,ROLE_ADMIN -ity=vishal,ROLE_TELLER diff --git a/sandbox/pom.xml b/sandbox/pom.xml index bc4526b1c9..3cf4a2763c 100644 --- a/sandbox/pom.xml +++ b/sandbox/pom.xml @@ -1,7 +1,5 @@ - - + + 4.0.0 org.acegisecurity @@ -22,6 +20,7 @@ webwork openid other + spring-security-config @@ -31,4 +30,4 @@ 1.1-SNAPSHOT - + \ No newline at end of file