diff --git a/sandbox/spring-security-config/.classpath b/sandbox/spring-security-config/.classpath
index a855ebb353..1f235edf8c 100644
--- a/sandbox/spring-security-config/.classpath
+++ b/sandbox/spring-security-config/.classpath
@@ -5,40 +5,40 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
diff --git a/sandbox/spring-security-config/.project b/sandbox/spring-security-config/.project
index 2539d6ea37..929ae1551c 100644
--- a/sandbox/spring-security-config/.project
+++ b/sandbox/spring-security-config/.project
@@ -1,25 +1,19 @@
-
- spring-security-config
- Acegi Security System for Spring
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- org.eclipse.wst.validation.validationbuilder
-
-
-
-
-
- org.eclipse.wst.common.project.facet.core.nature
- org.eclipse.jdt.core.javanature
- org.eclipse.wst.common.modulecore.ModuleCoreNature
- org.eclipse.jem.workbench.JavaEMFNature
-
-
+ spring-security-config
+ Acegi Security System for Spring
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+ org.eclipse.wst.validation.validationbuilder
+
+
+
+ org.eclipse.wst.common.project.facet.core.nature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.wst.common.modulecore.ModuleCoreNature
+ org.eclipse.jem.workbench.JavaEMFNature
+
+
\ No newline at end of file
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java
index ad9a0915b6..4b5cce4e86 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationMechanismBeanDefinitionParser.java
@@ -49,8 +49,8 @@ public class AuthenticationMechanismBeanDefinitionParser extends AbstractBeanDef
// ================================================================================================
private static final String AUTHENTICATION_JDBC = "authentication-jdbc";
-
- private static final String AUTHENTICATION_LDAP="authentication-ldap";
+
+ private static final String AUTHENTICATION_LDAP = "authentication-ldap";
private static final String REF = "ref";
@@ -76,7 +76,8 @@ public class AuthenticationMechanismBeanDefinitionParser extends AbstractBeanDef
// create a beandefinition
providers.add(new RuntimeBeanReference(attribute));
}
- } else if (AUTHENTICATION_LDAP.equals(node.getLocalName())){
+ }
+ else if (AUTHENTICATION_LDAP.equals(node.getLocalName())) {
providers.add(createLdapAuthencticationProviderBeanDefinition(childElement, parserContext));
}
}
@@ -114,16 +115,17 @@ public class AuthenticationMechanismBeanDefinitionParser extends AbstractBeanDef
Assert.notNull(property);
parserContext.getDelegate().parsePropertyElement(property, bindAuthenticator);
bindAuthenticator.getConstructorArgumentValues().addIndexedArgumentValue(0, initialDirContextFactory);
-
+
// LdapAuthenticator
ldapAuthProvider.getConstructorArgumentValues().addIndexedArgumentValue(0, bindAuthenticator);
ldapAuthoritiesPopulator.getConstructorArgumentValues().addIndexedArgumentValue(0, initialDirContextFactory);
BeanDefinitionParserUtils.setConstructorArgumentIfAvailable(1, element, "groupSearchBase", false,
ldapAuthoritiesPopulator);
- BeanDefinitionParserUtils.setPropertyIfAvailable(element, "groupRoleAttribute", "groupRoleAttribute", ldapAuthoritiesPopulator);
-
- //LdapAuthoritiesPopulator
+ BeanDefinitionParserUtils.setPropertyIfAvailable(element, "groupRoleAttribute", "groupRoleAttribute", false,
+ ldapAuthoritiesPopulator);
+
+ // LdapAuthoritiesPopulator
ldapAuthProvider.getConstructorArgumentValues().addIndexedArgumentValue(1, ldapAuthoritiesPopulator);
return ldapAuthProvider;
@@ -134,10 +136,10 @@ public class AuthenticationMechanismBeanDefinitionParser extends AbstractBeanDef
RootBeanDefinition initialDirContextFactory = new RootBeanDefinition(DefaultInitialDirContextFactory.class);
BeanDefinitionParserUtils.setConstructorArgumentIfAvailable(0, element, "ldapUrl", false,
initialDirContextFactory);
- BeanDefinitionParserUtils.setPropertyIfAvailable(element, "managerDn", "managerDn", initialDirContextFactory);
- BeanDefinitionParserUtils.setPropertyIfAvailable(element, "managerPassword", "managerPassword",
+ BeanDefinitionParserUtils.setPropertyIfAvailable(element, "managerDn", "managerDn", false,
+ initialDirContextFactory);
+ BeanDefinitionParserUtils.setPropertyIfAvailable(element, "managerPassword", "managerPassword", false,
initialDirContextFactory);
return initialDirContextFactory;
}
-
}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationRepositoryBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationRepositoryBeanDefinitionParser.java
index edb3212506..ac59498860 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationRepositoryBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/AuthenticationRepositoryBeanDefinitionParser.java
@@ -27,8 +27,8 @@ import org.w3c.dom.NodeList;
*/
public class AuthenticationRepositoryBeanDefinitionParser extends AbstractBeanDefinitionParser {
- // ~ Instance fields
- // ================================================================================================
+ // ~ Static fields
+ // =====================================================================================
private static final String REPOSITORY_BEAN_REF = "repositoryBeanRef";
@@ -50,14 +50,12 @@ public class AuthenticationRepositoryBeanDefinitionParser extends AbstractBeanDe
// ~ Method
// ================================================================================================
- /**
- * TODO: Document Me !!!
- */
+
public AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
Assert.notNull(parserContext, "ParserContext must not be null");
RootBeanDefinition repositoryBeanDef = new RootBeanDefinition(DaoAuthenticationProvider.class);
-
+
// check if saltSource is defined
Element saltSourceEle = DomUtils.getChildElementByTagName(element, SALT_SOURCE_ELEMENT);
setSaltSourceProperty(repositoryBeanDef, saltSourceEle);
@@ -186,7 +184,7 @@ public class AuthenticationRepositoryBeanDefinitionParser extends AbstractBeanDe
saltSourceTypeElement.getAttribute("systemWideSalt"));
return definition;
}
-
+
protected static RootBeanDefinition createBeanDefinitionWithDefaults() {
RootBeanDefinition repositoryBeanDef = new RootBeanDefinition(DaoAuthenticationProvider.class);
return repositoryBeanDef;
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 3a108a6b8f..6b6f430c0e 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
@@ -39,12 +39,18 @@ import org.w3c.dom.Element;
*/
public class AutoConfigBeanDefinitionParser implements BeanDefinitionParser {
+ // ~ instance fields
+ // ================================================================================================
+
private RootBeanDefinition authenticationManager;
private RootBeanDefinition rememberMeServices;
private ManagedList decisionVoters = new ManagedList();
+ // ~ Method
+ // ================================================================================================
+
public BeanDefinition parse(Element element, ParserContext parserContext) {
// authentication manager
this.authenticationManager = AuthenticationMechanismBeanDefinitionParser
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ContextIntegrationBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ContextIntegrationBeanDefinitionParser.java
index 3134cf2642..7b8787a929 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ContextIntegrationBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ContextIntegrationBeanDefinitionParser.java
@@ -23,6 +23,9 @@ import org.w3c.dom.NamedNodeMap;
*/
public class ContextIntegrationBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {
+ // ~ Static fields/initializers
+ // =====================================================================================
+
private static final String HTTP_SESSION_CONTEXT_INTEGRATION = "session-context-integration";
private static final String SESSION_CREATION = "sessionCreation";
@@ -35,7 +38,8 @@ public class ContextIntegrationBeanDefinitionParser extends AbstractSingleBeanDe
private static final String ALLOW_SESSION_CREATION = "allowSessionCreation";
- private BeanDefinitionBuilder builder;
+ // ~ Methods
+ // ========================================================================================================
protected Class getBeanClass(Element element) {
return HttpSessionContextIntegrationFilter.class;
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ExceptionTranslationFilterBeanDefinitionParser.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ExceptionTranslationFilterBeanDefinitionParser.java
index 8f2730f9e4..b77a8c0a72 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ExceptionTranslationFilterBeanDefinitionParser.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/ExceptionTranslationFilterBeanDefinitionParser.java
@@ -53,6 +53,9 @@ import org.w3c.dom.Element;
*/
public class ExceptionTranslationFilterBeanDefinitionParser extends AbstractBeanDefinitionParser {
+ // ~ Static fields
+ // =====================================================================================
+
private static final String ACCESS_DENIED = "access-denied";
private static final String ACCESS_DENIED_REF = "accessDeniedBeanRef";
@@ -67,6 +70,9 @@ public class ExceptionTranslationFilterBeanDefinitionParser extends AbstractBean
private static final String LOGIN_FORM_URL_VALUE = "/acegilogin.jsp";
+ // ~ Method
+ // ================================================================================================
+
protected AbstractBeanDefinition parseInternal(Element element, ParserContext parserContext) {
RootBeanDefinition exceptionFilterDef = new RootBeanDefinition(ExceptionTranslationFilter.class);
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java
index baa3c06a3a..2fd55b5b05 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/config/LogoutHandlerOrderResolver.java
@@ -70,10 +70,10 @@ public class LogoutHandlerOrderResolver implements BeanFactoryPostProcessor {
if (definition.hasBeanClass()) {
if (Ordered.class.isAssignableFrom(definition.getBeanClass())) {
definition.getPropertyValues().addPropertyValue("order",
- new Integer(getOrder(definition.getBeanClass())));
+ Integer.valueOf(getOrder(definition.getBeanClass())));
}
else {
- definition.getPropertyValues().addPropertyValue("order", new Integer(Integer.MAX_VALUE));
+ definition.getPropertyValues().addPropertyValue("order", Integer.valueOf(Integer.MAX_VALUE));
}
}
list.add(definition);
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 b148e6f669..a7bd459ce7 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
@@ -28,6 +28,7 @@ public class SecurityNamespaceHandler extends NamespaceHandlerSupport {
registerBeanDefinitionParser("logout-support", new LogoutFilterBeanDefinitionParser());
registerBeanDefinitionParser("exception-translation", new ExceptionTranslationFilterBeanDefinitionParser());
registerBeanDefinitionParser("authentication-form", new AuthenticationProcessingFilterBeanDefinitionParser());
+ registerBeanDefinitionParser("authorization-http-url", new FilterSecurityInterceptorBeanDefinitionParser());
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 a5e599d159..aae7f7141e 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
@@ -14,29 +14,43 @@ import org.w3c.dom.Element;
*
*/
public class BeanDefinitionParserUtils {
+ // ~ Constructor
+ // ================================================================================================
+
/**
* Prevents instantiation
*/
private BeanDefinitionParserUtils() {
}
+ // ~ Method
+ // ================================================================================================
+
public static void setConstructorArgumentIfAvailable(int index, Element element, String attribute,
boolean isRunTimeBeanReference, RootBeanDefinition definition) {
String propertyValue = element.getAttribute(attribute);
if (StringUtils.hasText(propertyValue)) {
- if(!isRunTimeBeanReference){
+ if (!isRunTimeBeanReference) {
definition.getConstructorArgumentValues().addIndexedArgumentValue(index, propertyValue);
- } else {
- definition.getConstructorArgumentValues().addIndexedArgumentValue(index, new RuntimeBeanNameReference(propertyValue));
+ }
+ else {
+ definition.getConstructorArgumentValues().addIndexedArgumentValue(index,
+ new RuntimeBeanNameReference(propertyValue));
}
}
}
public static void setPropertyIfAvailable(Element element, String attribute, String property,
- RootBeanDefinition definition) {
+ boolean isRunTimeBeanReference, RootBeanDefinition definition) {
String propertyValue = element.getAttribute(attribute);
if (StringUtils.hasText(propertyValue)) {
- definition.getPropertyValues().addPropertyValue(property, propertyValue);
+ if (!isRunTimeBeanReference) {
+ definition.getPropertyValues().addPropertyValue(property, propertyValue);
+ }
+ else {
+ definition.getPropertyValues().addPropertyValue(property, new RuntimeBeanNameReference(propertyValue));
+ }
+
}
}
}
diff --git a/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/OrderedUtils.java b/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/OrderedUtils.java
index 0fc05337cc..4f2ef350c6 100644
--- a/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/OrderedUtils.java
+++ b/sandbox/spring-security-config/src/main/java/org/acegisecurity/util/OrderedUtils.java
@@ -13,6 +13,7 @@ import org.springframework.util.ReflectionUtils;
* {@link Ordered} interface.
*
* @author Ben Alex
+ * @author Vishal Puri
*/
public abstract class OrderedUtils {
/**
@@ -59,7 +60,7 @@ public abstract class OrderedUtils {
Assert.notNull(destinationObject, "Destination object required");
Method m = ReflectionUtils.findMethod(destinationObject.getClass(), "setOrder", new Class[] {int.class});
Assert.notNull(m, "Method setOrder(int) not found on " + destinationObject.getClass());
- ReflectionUtils.invokeMethod(m, destinationObject, new Object[] {new Integer(sourceObject.getOrder())});
+ ReflectionUtils.invokeMethod(m, destinationObject, new Object[] { Integer.valueOf((sourceObject.getOrder()))});
}
}
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 1fcb0d6f4d..25a8848d40 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
@@ -294,7 +294,7 @@
-
+
@@ -504,6 +504,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/AutoConfigBeanDefinitionParserTests.java b/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/AutoConfigBeanDefinitionParserTests.java
index 165cc3d45d..5a22526491 100644
--- a/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/AutoConfigBeanDefinitionParserTests.java
+++ b/sandbox/spring-security-config/src/test/java/org/acegisecurity/config/AutoConfigBeanDefinitionParserTests.java
@@ -30,7 +30,7 @@ public class AutoConfigBeanDefinitionParserTests extends TestCase {
private ApplicationContext context;
- ConfigurableListableBeanFactory bf;
+ private ConfigurableListableBeanFactory bf;
// ~ Methods
// ========================================================================================================
@@ -89,7 +89,6 @@ public class AutoConfigBeanDefinitionParserTests extends TestCase {
Field transactionAttributeSource = makeAccessibleAndGetFieldByName(advisor.getClass().getDeclaredFields(), "transactionAttributeSource");
assertNotNull(transactionAttributeSource);
assertTrue(transactionAttributeSource.get(advisor) instanceof MethodDefinitionSource);
-
}
private Field makeAccessibleAndGetFieldByName(Field[] declaredFields, String name) {
diff --git a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml
index 018bfe362f..077caf79d6 100644
--- a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/remember-me-defaults.xml
@@ -12,7 +12,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/security-namespaces.xml b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/security-namespaces.xml
index 40d8a49575..65f23cb40c 100644
--- a/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/security-namespaces.xml
+++ b/sandbox/spring-security-config/src/test/resources/org/acegisecurity/config/security-namespaces.xml
@@ -1,4 +1,4 @@
-
+
t
+ strategy="consensus|unanimous|affirmative" />
+ t
@@ -90,7 +91,7 @@
x="you can do the attributes and suitable nested elements" />
-
+
@@ -129,13 +130,15 @@
-
+
-
+