();
+
+ mapping.setMethodName(methodToProtect);
+
+ List configAttributes = DomUtils.getChildElementsByTagName(methodPattern, CONFIGURATION_ATTRIBUTE);
+
+ for (Iterator iter = configAttributes.iterator(); iter.hasNext();) {
+ Element configAttribute = (Element) iter.next();
+ String configAttributeValue = configAttribute.getAttribute(ATTRIBUTE);
+ mapping.addConfigAttribute(configAttributeValue);
+ }
+ mappings.add(mapping);
+ source.setMappings(mappings);
+ return source;
+ }
+ else if (sourceValue.equals("annotations")) {
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, new RootBeanDefinition(
+ DefaultAdvisorAutoProxyCreator.class));
+
+ MethodDefinitionAttributes source = new MethodDefinitionAttributes();
+ SecurityAnnotationAttributes attributes = new SecurityAnnotationAttributes();
+ source.setAttributes(attributes);
+ return source;
+ }
+ else if (sourceValue.equals("attributes")) {
+ // create CommonsAttributes
+ CommonsAttributes attributes = new CommonsAttributes();
+ // objectDefinitionSource and inject attributes
+ MethodDefinitionAttributes source = new MethodDefinitionAttributes();
+ source.setAttributes(attributes);
+
+ // register DefaultAdvisorAutoProxyCreator with parseContext
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, new RootBeanDefinition(
+ DefaultAdvisorAutoProxyCreator.class));
+
+ // register MethodDefinitionSourceAdvisor autowire="constructor"
+ registerMethodDefinitionSourceAdvisor(parserContext);
+ return source;
+ }
+ return null;
+ }
+
+ /**
+ * @param parserContext
+ * @throws BeanDefinitionStoreException
+ */
+ private void registerMethodDefinitionSourceAdvisor(ParserContext parserContext) throws BeanDefinitionStoreException {
+ RootBeanDefinition methodSecurityAdvisor = new RootBeanDefinition(MethodDefinitionSourceAdvisor.class);
+ methodSecurityAdvisor.setAutowireMode(AbstractBeanDefinition.AUTOWIRE_CONSTRUCTOR);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, methodSecurityAdvisor);
+ }
+
+ /**
+ * Creates BeanDefinition for MethodSecurityInterceptor
+ * MethodSecurityInterceptor autodetects 'authenticationManager' and
+ * 'accessDecisionManager'
+ * @param name
+ *
+ * @return
+ */
+ private RootBeanDefinition createMethodSecurityInterceptor(Class interceptorType, Object object) {
+ Assert.notNull(object, "objectDefinitionSource required");
+ RootBeanDefinition securityInterceptor = new RootBeanDefinition(interceptorType);
+ if (RuntimeBeanReference.class.isAssignableFrom(object.getClass())) {
+ RuntimeBeanReference source = (RuntimeBeanReference) object;
+ securityInterceptor.getPropertyValues().addPropertyValue("objectDefinitionSource", source);
+ }
+ else if (MethodDefinitionSource.class.isAssignableFrom(object.getClass())) {
+ MethodDefinitionSource source = (MethodDefinitionSource) object;
+ securityInterceptor.getPropertyValues().addPropertyValue("objectDefinitionSource", source);
+ }
+ securityInterceptor.getPropertyValues().addPropertyValue("validateConfigAttributes", Boolean.FALSE);
+ RootBeanDefinition runAsManager = createRunAsManager();
+ securityInterceptor.getPropertyValues().addPropertyValue("runAsManager", runAsManager);
+ return securityInterceptor;
+ }
+
+ private RootBeanDefinition createRunAsManager() {
+ RootBeanDefinition runAsManager = new RootBeanDefinition(RunAsManagerImpl.class);
+ runAsManager.getPropertyValues().addPropertyValue("key", "my_run_as_password");
+ return runAsManager;
+ }
+
+ /**
+ * Checks if 'custom' option is picked for 'source' attribute when
+ * 'sourceBeanId' attribute is provided.
+ *
+ * The valid configuration example:
<security:url-mapping
+ * source="custom" sourceBeanId="referenceToObjectDefinitionSource"/>
+ *
+ * @param urlMappingElement
+ * @return boolean Returns 'true' if configuration is accepted otherwise
+ * returns 'false'
+ */
+ private boolean isValidConfiguration(Element urlMappingElement, boolean isRefDefined) {
+ Assert.notNull(urlMappingElement, "invalid tag - expected 'url-mapping' ");
+ Assert.isTrue(urlMappingElement.getLocalName().equals("url-mapping"), "invalid tag - expected 'url-mapping' ");
+ if (isRefDefined && (urlMappingElement.getAttribute(SOURCE_ATTRIBUTE).compareTo("custom") != 0)) {
+ return false;
+ }
+ return true;
+ }
+}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AutoConfigBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AutoConfigBeanDefinitionParser.java
index 6b6f430c0e..0b6a21c22a 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AutoConfigBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AutoConfigBeanDefinitionParser.java
@@ -4,9 +4,10 @@
package org.acegisecurity.config;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
-import org.acegisecurity.AuthenticationManager;
import org.acegisecurity.annotation.SecurityAnnotationAttributes;
import org.acegisecurity.intercept.method.MethodDefinitionAttributes;
import org.acegisecurity.intercept.method.aopalliance.MethodDefinitionSourceAdvisor;
@@ -16,6 +17,8 @@ import org.acegisecurity.intercept.web.FilterInvocationDefinitionSourceMapping;
import org.acegisecurity.intercept.web.FilterSecurityInterceptor;
import org.acegisecurity.intercept.web.PathBasedFilterInvocationDefinitionMap;
import org.acegisecurity.runas.RunAsManagerImpl;
+import org.acegisecurity.userdetails.memory.InMemoryDaoImpl;
+import org.acegisecurity.util.BeanDefinitionParserUtils;
import org.acegisecurity.vote.AffirmativeBased;
import org.acegisecurity.vote.AuthenticatedVoter;
import org.acegisecurity.vote.RoleVoter;
@@ -27,6 +30,7 @@ import org.springframework.beans.factory.support.ManagedList;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
+import org.springframework.util.xml.DomUtils;
import org.w3c.dom.Element;
/**
@@ -73,12 +77,14 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
// filter security interceptor
createAndRegisterBeanDefinitionForFilterSecurityInterceptor(parserContext, authenticationManager);
+
+ // create userDetailsService
return null;
}
private void createAndRegisterBeanDefintionForSecurityContextHolderAwareRequestFilter(ParserContext parserContext) {
RootBeanDefinition beanDefinition = new RootBeanDefinition(SecurityContextHolderAwareRequestFilter.class);
- registerBeanDefinition(parserContext, beanDefinition);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, beanDefinition);
}
/**
@@ -120,7 +126,7 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
source.setMappings(mappings);
filterInvocationInterceptor.getPropertyValues().addPropertyValue("objectDefinitionSource",
source.getDecorated());
- registerBeanDefinition(parserContext, filterInvocationInterceptor);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, filterInvocationInterceptor);
}
private RootBeanDefinition createAccessDecisionManagerAffirmativeBased() {
@@ -133,7 +139,8 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
}
private void createAndRegisterDefaultAdvisorAutoProxyCreator(ParserContext parserContext) {
- registerBeanDefinition(parserContext, new RootBeanDefinition(DefaultAdvisorAutoProxyCreator.class));
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, new RootBeanDefinition(
+ DefaultAdvisorAutoProxyCreator.class));
}
private void createAndRegisterBeanDefinitinoForMethodDefinitionSourceAdvisor(ParserContext parserContext,
@@ -142,23 +149,18 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
RootBeanDefinition securityInterceptor = createMethodSecurityInterceptor(authenticationManager);
methodSecurityAdvisor.getConstructorArgumentValues().addIndexedArgumentValue(0, securityInterceptor);
- registerBeanDefinition(parserContext, methodSecurityAdvisor);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, methodSecurityAdvisor);
}
private RootBeanDefinition createAccessDecisionManagerUnanimousBased() {
RootBeanDefinition accessDecisionManager = new RootBeanDefinition(UnanimousBased.class);
accessDecisionManager.getPropertyValues().addPropertyValue("allowIfAllAbstainDecisions", Boolean.FALSE);
- RootBeanDefinition roleVoter = createRoleVoter();
- decisionVoters.add(roleVoter);
+ decisionVoters.add(new RootBeanDefinition(RoleVoter.class));
accessDecisionManager.getPropertyValues().addPropertyValue("decisionVoters", decisionVoters);
return accessDecisionManager;
}
- private RootBeanDefinition createRoleVoter() {
- return new RootBeanDefinition(RoleVoter.class);
- }
-
private RootBeanDefinition createMethodSecurityInterceptor(RootBeanDefinition authenticationManager) {
RootBeanDefinition securityInterceptor = new RootBeanDefinition(MethodSecurityInterceptor.class);
securityInterceptor.getPropertyValues().addPropertyValue("authenticationManager", authenticationManager);
@@ -190,45 +192,36 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
}
private void createAndRegisterBeanDefinitionForExceptionTranslationFilter(ParserContext parserContext) {
- registerBeanDefinition(parserContext, ExceptionTranslationFilterBeanDefinitionParser
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, ExceptionTranslationFilterBeanDefinitionParser
.createBeanDefinitionWithDefaults());
}
private void createAndRegisterBeanDefinitionForRememberMeProcessingFilter(ParserContext parserContext,
RootBeanDefinition authenticationManager) {
- registerBeanDefinition(parserContext, RememberMeFilterBeanDefinitionParser.createBeanDefinitionWithDefaults(
- parserContext, authenticationManager));
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, RememberMeFilterBeanDefinitionParser
+ .createBeanDefinitionWithDefaults(parserContext, authenticationManager));
}
private void createAndRegisterBeanDefinitionForAuthenticationProcessingFilter(ParserContext parserContext,
RootBeanDefinition authenticationManager, RootBeanDefinition rememberMeServices) {
RootBeanDefinition defintion = AuthenticationProcessingFilterBeanDefinitionParser
.createBeandefinitionWithDefaults(parserContext, authenticationManager, rememberMeServices);
- registerBeanDefinition(parserContext, defintion);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, defintion);
}
private void createAndRegisterBeanDefinitionForLogoutFilter(ParserContext parserContext,
RootBeanDefinition rememberMeServices) {
RootBeanDefinition defintion = LogoutFilterBeanDefinitionParser
.createBeanDefinitionWithDefaults(rememberMeServices);
- registerBeanDefinition(parserContext, defintion);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, defintion);
}
private void createAndRegisterBeanDefinitionForHttpSessionContextIntegrationFilter(ParserContext parserContext) {
RootBeanDefinition defintion = ContextIntegrationBeanDefinitionParser.createBeanDefinitionWithDefaults();
- registerBeanDefinition(parserContext, defintion);
+ BeanDefinitionParserUtils.registerBeanDefinition(parserContext, defintion);
// retrieveBeanDefinition(parserContext, o)
}
- /**
- * @param parserContext
- * @param defintion
- */
- private void registerBeanDefinition(ParserContext parserContext, RootBeanDefinition defintion) {
- parserContext.getRegistry().registerBeanDefinition(
- parserContext.getReaderContext().generateBeanName(defintion), defintion);
- }
-
/**
* Returns a BeanDefinition of the specified type.
*
@@ -247,7 +240,4 @@ public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
return null;
}
- private Class ss(Object o) {
- return o.getClass();
- }
}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/FilterSecurityInterceptorBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/FilterSecurityInterceptorBeanDefinitionParser.java
index 4e6bc5041b..9f7ba89279 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/FilterSecurityInterceptorBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/FilterSecurityInterceptorBeanDefinitionParser.java
@@ -26,6 +26,8 @@ import org.w3c.dom.Node;
*
*/
public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanDefinitionParser {
+ // ~ static initializers
+ // ================================================================================================
private static final String OBJECT_DEFINITION_SOURCE_PROPERTY = "objectDefinitionSource";
@@ -37,6 +39,9 @@ public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanD
private static final String CONFIGURATION_ATTRIB_ATTRIBUTE = "attribute";
+ // ~ Methods
+ // ================================================================================================
+
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
return createBeanDefinitionForFilterSecurityInterceptor(element, parserContext);
}
@@ -45,7 +50,8 @@ public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanD
ParserContext parserContext) {
RootBeanDefinition filterInvocationInterceptor = new RootBeanDefinition(FilterSecurityInterceptor.class);
- RootBeanDefinition accessDecisionManager = AuthorizationManagerBeanDefinitionParser.createAccessDecisionManagerAffirmativeBased();
+ RootBeanDefinition accessDecisionManager = AuthorizationManagerBeanDefinitionParser
+ .createAccessDecisionManagerAffirmativeBased();
filterInvocationInterceptor.getPropertyValues()
.addPropertyValue("accessDecisionManager", accessDecisionManager);
@@ -56,8 +62,12 @@ public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanD
Element firstChild = DomUtils.getChildElementByTagName(element, "url-mapping");
// if 'url-mapping' element is defined
if (firstChild != null) {
- BeanDefinitionParserUtils.setPropertyIfAvailable(firstChild, OBJECT_DEFINITION_SOURCE_REF_ATTRIBUTE,
- OBJECT_DEFINITION_SOURCE_PROPERTY, true/* RuntimeBeanReference */, filterInvocationInterceptor);
+
+ if (BeanDefinitionParserUtils.setPropertyIfAvailable(firstChild, OBJECT_DEFINITION_SOURCE_REF_ATTRIBUTE,
+ OBJECT_DEFINITION_SOURCE_PROPERTY, true/* RuntimeBeanReference */, filterInvocationInterceptor)) {
+ return filterInvocationInterceptor;
+ }
+
// get 'uri-pattern' or 'path' attribute. not both can be specified
// together
List uriPatternElements = DomUtils.getChildElementsByTagName(firstChild, "uri-pattern");
@@ -118,8 +128,8 @@ public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanD
mapping.setUrl(url);
// get child elements 'configuration-attribute'
List configAttributes = DomUtils.getChildElementsByTagName(uriPattern, "configuration-attribute");
-
- for (Iterator iter = configAttributes.iterator(); iter.hasNext();) {
+
+ for (Iterator iter = configAttributes.iterator(); iter.hasNext();) {
Element configAttribute = (Element) iter.next();
String configAttributeValue = configAttribute.getAttribute(CONFIGURATION_ATTRIB_ATTRIBUTE);
mapping.addConfigAttribute(configAttributeValue);
@@ -145,11 +155,9 @@ public class FilterSecurityInterceptorBeanDefinitionParser extends AbstractBeanD
mappings.add(mapping);
source.setMappings(mappings);
- filterInvocationInterceptor.getPropertyValues().addPropertyValue("objectDefinitionSource",
+ filterInvocationInterceptor.getPropertyValues().addPropertyValue(OBJECT_DEFINITION_SOURCE_PROPERTY,
source.getDecorated());
return filterInvocationInterceptor;
}
-
-
}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java
index 1076a6aa07..1796f3ba07 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/PrincipalRepositoryBeanDefinitionParser.java
@@ -3,8 +3,13 @@
*/
package org.acegisecurity.config;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import java.util.Properties;
+import org.acegisecurity.GrantedAuthority;
import org.acegisecurity.GrantedAuthorityImpl;
import org.acegisecurity.userdetails.User;
import org.acegisecurity.userdetails.UserDetails;
@@ -142,6 +147,15 @@ public class PrincipalRepositoryBeanDefinitionParser extends AbstractBeanDefinit
defintion.setSource(parserContext.extractSource(ele));
return parserContext.getReaderContext().registerWithGeneratedName(defintion);
}
+
+ protected static RootBeanDefinition createSampleUsersUsingProperties() {
+ // properties element
+ RootBeanDefinition defintion = new RootBeanDefinition(PropertiesFactoryBean.class);
+ String location = "classpath:org/acegisecurity/config/user.properties";
+ defintion.getPropertyValues().addPropertyValue("location", location);
+ return defintion;
+ }
+
/**
*
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java
index d56ea98b29..c694e59f4f 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/SecurityNamespaceHandler.java
@@ -30,6 +30,7 @@ public class SecurityNamespaceHandler extends NamespaceHandlerSupport {
registerBeanDefinitionParser("authentication-form", new AuthenticationProcessingFilterBeanDefinitionParser());
registerBeanDefinitionParser("authorization-manager", new AuthorizationManagerBeanDefinitionParser());
registerBeanDefinitionParser("authorization-http-url", new FilterSecurityInterceptorBeanDefinitionParser());
+ registerBeanDefinitionParser("authorization-joinpoint", new AuthorizationMethodBeanDefinitionParser());
registerBeanDefinitionParser("autoconfig", new AutoConfigBeanDefinitionParser());
}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/BeanDefinitionParserUtils.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/BeanDefinitionParserUtils.java
index aae7f7141e..cf3141a3d6 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/BeanDefinitionParserUtils.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/BeanDefinitionParserUtils.java
@@ -4,12 +4,15 @@
package org.acegisecurity.util;
import org.springframework.beans.factory.config.RuntimeBeanNameReference;
-import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;
+import org.springframework.beans.factory.config.RuntimeBeanReference;
import org.springframework.beans.factory.support.RootBeanDefinition;
+import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.util.StringUtils;
import org.w3c.dom.Element;
/**
+ * The convenience methods for the parsing of bean definition xml file.
+ *
* @author Vishal Puri
*
*/
@@ -40,17 +43,46 @@ public class BeanDefinitionParserUtils {
}
}
- public static void setPropertyIfAvailable(Element element, String attribute, String property,
+ /**
+ *
+ * Configure a BeanDefinitionwith the property value
+ * retrieved from xml attribute. If the attribute is like a standard spring
+ * 'ref' attribute as indicated by 'isRunTimeBeanReference', the property
+ * will be resolved as a reference to the spring bean.
+ *
+ *
+ * @param element The parent element.
+ * @param attribute The child attribute.
+ * @param property The configuration property for the BeanDefinition
+ * @param isRunTimeBeanReference Indicates if the property is like a
+ * standard spring 'ref' attribute.
+ * @param definition The BeanDefinition to configure with the property
+ * provided.
+ * @return boolean To indicate if BeanDefinition was configured with a
+ * property.
+ */
+ public static boolean setPropertyIfAvailable(Element element, String attribute, String property,
boolean isRunTimeBeanReference, RootBeanDefinition definition) {
String propertyValue = element.getAttribute(attribute);
if (StringUtils.hasText(propertyValue)) {
if (!isRunTimeBeanReference) {
definition.getPropertyValues().addPropertyValue(property, propertyValue);
+ return true;
}
else {
- definition.getPropertyValues().addPropertyValue(property, new RuntimeBeanNameReference(propertyValue));
+ definition.getPropertyValues().addPropertyValue(property, new RuntimeBeanReference(propertyValue));
+ return true;
}
-
}
+ return false;
+ }
+
+ /**
+ * @param parserContext
+ * @param defintion
+ */
+ public static void registerBeanDefinition(ParserContext parserContext, RootBeanDefinition defintion) {
+ parserContext.getRegistry().registerBeanDefinition(
+ parserContext.getReaderContext().generateBeanName(defintion), defintion);
}
}
diff --git a/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/inmemory-users.properties b/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/inmemory-users.properties
new file mode 100644
index 0000000000..66b97be29f
--- /dev/null
+++ b/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/inmemory-users.properties
@@ -0,0 +1,4 @@
+angelina=black,ROLE_ADMIN
+brad=grey,ROLE_TELLER,ROLE_PERMISSION_LIST
+paris=pink,ROLE_TELLER
+bono=sunny,ROLE_PERMISSION_LIST
diff --git a/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd b/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd
index 1dd2273768..76b8eb45cd 100644
--- a/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd
+++ b/sandbox/spring-security-config/src/main/resources/org/acegisecurity/config/spring-security-2.0.xsd
@@ -553,20 +553,24 @@
-
-
+
+
-
-
-
+
+
+
-
-
+
+
@@ -577,9 +581,67 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -588,6 +650,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java b/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java
index d7b089aa09..0716479ca6 100644
--- a/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java
+++ b/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/PrincipalRepositoryNamespaceTests.java
@@ -1,4 +1,4 @@
- package org.acegisecurity.config;
+package org.acegisecurity.config;
import junit.framework.TestCase;
@@ -9,13 +9,14 @@ 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.BeanDefinition;
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
+ * @author Vishal Puri
*
*/
public class PrincipalRepositoryNamespaceTests extends TestCase {
@@ -60,4 +61,5 @@ public class PrincipalRepositoryNamespaceTests extends TestCase {
assertEquals(new GrantedAuthorityImpl("ROLE_YO"), users.getUser("vishal").getAuthorities()[0]);
assertEquals(new GrantedAuthorityImpl("ROLE_YOYO"), users.getUser("vishal").getAuthorities()[1]);
}
+
}
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-http-config.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-http-config.xml
index 07ac8a9c58..38efe1b606 100644
--- a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-http-config.xml
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-http-config.xml
@@ -12,9 +12,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc
-
+
@@ -22,8 +20,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc
-
+
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-annotations.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-annotations.xml
new file mode 100644
index 0000000000..deeef05543
--- /dev/null
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-annotations.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-aspectj.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-aspectj.xml
new file mode 100644
index 0000000000..0f1233dd78
--- /dev/null
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-aspectj.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-attributes.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-attributes.xml
new file mode 100644
index 0000000000..ff13e48ec8
--- /dev/null
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method-attributes.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method.xml
new file mode 100644
index 0000000000..88d418e26f
--- /dev/null
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/authorization-method.xml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file