Pārlūkot izejas kodu

SEC-271: Revert Ordered and ApplicationContextAware usage at this time, due to release of 1.0..

Ben Alex 18 gadi atpakaļ
vecāks
revīzija
db3024f9a4
28 mainītis faili ar 31 papildinājumiem un 566 dzēšanām
  1. 1 11
      core/src/main/java/org/acegisecurity/adapters/AuthByAdapterProvider.java
  2. 1 64
      core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java
  3. 1 11
      core/src/main/java/org/acegisecurity/providers/anonymous/AnonymousAuthenticationProvider.java
  4. 2 13
      core/src/main/java/org/acegisecurity/providers/cas/CasAuthenticationProvider.java
  5. 1 31
      core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java
  6. 1 11
      core/src/main/java/org/acegisecurity/providers/jaas/JaasAuthenticationProvider.java
  7. 1 11
      core/src/main/java/org/acegisecurity/providers/ldap/LdapAuthenticationProvider.java
  8. 1 11
      core/src/main/java/org/acegisecurity/providers/rcp/RemoteAuthenticationProvider.java
  9. 1 11
      core/src/main/java/org/acegisecurity/providers/rememberme/RememberMeAuthenticationProvider.java
  10. 1 12
      core/src/main/java/org/acegisecurity/providers/siteminder/SiteminderAuthenticationProvider.java
  11. 1 11
      core/src/main/java/org/acegisecurity/providers/x509/X509AuthenticationProvider.java
  12. 1 11
      core/src/main/java/org/acegisecurity/runas/RunAsImplAuthenticationProvider.java
  13. 1 58
      core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java
  14. 1 29
      core/src/main/java/org/acegisecurity/ui/ExceptionTranslationFilter.java
  15. 1 10
      core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java
  16. 1 22
      core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java
  17. 1 11
      core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java
  18. 1 10
      core/src/main/java/org/acegisecurity/ui/logout/LogoutFilter.java
  19. 1 14
      core/src/main/java/org/acegisecurity/ui/logout/SecurityContextLogoutHandler.java
  20. 1 56
      core/src/main/java/org/acegisecurity/ui/rememberme/RememberMeProcessingFilter.java
  21. 1 30
      core/src/main/java/org/acegisecurity/ui/rememberme/TokenBasedRememberMeServices.java
  22. 1 14
      core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java
  23. 1 15
      core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java
  24. 1 30
      core/src/main/java/org/acegisecurity/vote/AbstractAccessDecisionManager.java
  25. 1 15
      core/src/main/java/org/acegisecurity/vote/AuthenticatedVoter.java
  26. 3 19
      core/src/main/java/org/acegisecurity/vote/RoleVoter.java
  27. 1 11
      core/src/test/java/org/acegisecurity/MockAuthenticationEntryPoint.java
  28. 1 14
      core/src/test/java/org/acegisecurity/vote/DenyAgainVoter.java

+ 1 - 11
core/src/main/java/org/acegisecurity/adapters/AuthByAdapterProvider.java

@@ -27,7 +27,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -39,23 +38,14 @@ import org.springframework.util.Assert;
  * <code>AuthByAdapterProvider</code>-configured key.</p>
  *  <P>If the key does not match, a <code>BadCredentialsException</code> is thrown.</p>
  */
-public class AuthByAdapterProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware, Ordered {
+public class AuthByAdapterProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware {
     //~ Instance fields ================================================================================================
 
     protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
     private String key;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(key, "A Key is required and should match that configured for the adapters");
         Assert.notNull(messages, "A message source must be set");

+ 1 - 64
core/src/main/java/org/acegisecurity/intercept/AbstractSecurityInterceptor.java

@@ -39,11 +39,8 @@ import org.acegisecurity.runas.NullRunAsManager;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
 
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationEvent;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.ApplicationEventPublisherAware;
@@ -55,7 +52,6 @@ import org.springframework.util.Assert;
 
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.Map;
 import java.util.Set;
 
 /**
@@ -121,7 +117,7 @@ import java.util.Set;
  * luke_t $
  */
 public abstract class AbstractSecurityInterceptor implements InitializingBean, ApplicationEventPublisherAware,
-		MessageSourceAware, ApplicationContextAware {
+		MessageSourceAware {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -148,12 +144,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 
 	private boolean validateConfigAttributes = true;
 
-	private boolean isSetAuthenticationManagerInvoked = false;
-
-	private boolean isSetAccessDecisionManagerInvoked = false;
-
-	private ApplicationContext applicationContext;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -206,14 +196,8 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 
 		Assert.notNull(this.messages, "A message source must be set");
 
-		if (!isSetAuthenticationManagerInvoked) {
-			autoDetectAuthenticationManager();
-		}
 		Assert.notNull(this.authenticationManager, "An AuthenticationManager is required");
 
-		if (!isSetAccessDecisionManagerInvoked) {
-			autoDetectAccessDecisionManager();
-		}
 		Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required");
 
 		Assert.notNull(this.runAsManager, "A RunAsManager is required");
@@ -267,47 +251,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 		}
 	}
 
-	/**
-	 * Introspects the <code>Applicationcontext</code> for the single instance
-	 * of <code>AccessDecisionManager</code>. If more than one instance of
-	 * <code>AccessDecisionManager</code> is found, the method uses the first
-	 * one detected.
-	 * 
-	 * @param applicationContext to locate the instance
-	 */
-	private void autoDetectAccessDecisionManager() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(AccessDecisionManager.class);
-			if (map.size() > 0)
-				setAccessDecisionManager((AccessDecisionManager) map.values().iterator().next());
-		}
-	}
-
-	/**
-	 * Introspects the <code>Applicationcontext</code> for the single instance
-	 * of <code>AuthenticationManager</code>. If found invoke
-	 * setAuthenticationManager method by providing the found instance of
-	 * authenticationManager as a method parameter. If more than one instance of
-	 * <code>AuthenticationManager</code> is found, the method throws
-	 * <code>IllegalStateException</code>.
-	 * 
-	 * @param applicationContext to locate the instance
-	 */
-	private void autoDetectAuthenticationManager() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(AuthenticationManager.class);
-			if (map.size() > 1) {
-				throw new IllegalArgumentException(
-						"More than one AuthenticationManager beans detected please refer to the one using "
-								+ " [ authenticationManager  ] " + "property");
-			}
-			else if (map.size() == 1) {
-				setAuthenticationManager((AuthenticationManager) map.values().iterator().next());
-			}
-		}
-
-	}
-
 	protected InterceptorStatusToken beforeInvocation(Object object) {
 		Assert.notNull(object, "Object was null");
 
@@ -479,7 +422,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 	public abstract ObjectDefinitionSource obtainObjectDefinitionSource();
 
 	public void setAccessDecisionManager(AccessDecisionManager accessDecisionManager) {
-		isSetAccessDecisionManagerInvoked = true;
 		this.accessDecisionManager = accessDecisionManager;
 	}
 
@@ -509,7 +451,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 	}
 
 	public void setAuthenticationManager(AuthenticationManager newManager) {
-		isSetAuthenticationManagerInvoked = true;
 		this.authenticationManager = newManager;
 	}
 
@@ -551,8 +492,4 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
 			this.eventPublisher.publishEvent(event);
 		}
 	}
-
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext = applicationContext;
-	}
 }

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/anonymous/AnonymousAuthenticationProvider.java

@@ -26,7 +26,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 import org.springframework.util.Assert;
 
 
@@ -36,7 +35,7 @@ import org.springframework.util.Assert;
  * {@link org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken#getKeyHash()} must match this class'
  * {@link #getKey()}.</p>
  */
-public class AnonymousAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware, Ordered {
+public class AnonymousAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(AnonymousAuthenticationProvider.class);
@@ -45,18 +44,9 @@ public class AnonymousAuthenticationProvider implements AuthenticationProvider,
 
     protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
     private String key;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.hasLength(key, "A Key is required");
         Assert.notNull(this.messages, "A message source must be set");

+ 2 - 13
core/src/main/java/org/acegisecurity/providers/cas/CasAuthenticationProvider.java

@@ -35,7 +35,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -50,7 +49,7 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class CasAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware, Ordered {
+public class CasAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(CasAuthenticationProvider.class);
@@ -63,25 +62,15 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia
     private StatelessTicketCache statelessTicketCache;
     private String key;
     private TicketValidator ticketValidator;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(this.casAuthoritiesPopulator, "A casAuthoritiesPopulator must be set");
         Assert.notNull(this.ticketValidator, "A ticketValidator must be set");
         Assert.notNull(this.casProxyDecider, "A casProxyDecider must be set");
         Assert.notNull(this.statelessTicketCache, "A statelessTicketCache must be set");
-        Assert.notNull(key,
-            "A Key is required so CasAuthenticationProvider can identify tokens it previously authenticated");
+        Assert.notNull(this.key, "A Key is required so CasAuthenticationProvider can identify tokens it previously authenticated");
         Assert.notNull(this.messages, "A message source must be set");
     }
 

+ 1 - 31
core/src/main/java/org/acegisecurity/providers/dao/DaoAuthenticationProvider.java

@@ -26,10 +26,7 @@ import org.acegisecurity.providers.encoding.PasswordEncoder;
 import org.acegisecurity.providers.encoding.PlaintextPasswordEncoder;
 import org.acegisecurity.userdetails.UserDetails;
 import org.acegisecurity.userdetails.UserDetailsService;
-import org.springframework.beans.BeansException;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
-import org.springframework.core.Ordered;
 import org.springframework.dao.DataAccessException;
 import org.springframework.util.Assert;
 
@@ -41,8 +38,7 @@ import org.springframework.util.Assert;
  * @version $Id: DaoAuthenticationProvider.java 1857 2007-05-24 00:47:12Z
  * benalex $
  */
-public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider implements
-		ApplicationContextAware, Ordered {
+public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
 
 	// ~ Instance fields
 	// ================================================================================================
@@ -55,16 +51,6 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication
 
 	private boolean includeDetailsObject = true;
 
-	private int DEFAULT_RDER = Integer.MAX_VALUE; // default: same as
-
-	// non-Ordered
-
-	private int order = DEFAULT_RDER;
-
-	private boolean isSetUserDetailsServiceInvoked;
-
-	private ApplicationContext applicationContext;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -93,9 +79,6 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication
 	}
 
 	protected void doAfterPropertiesSet() throws Exception {
-		if (!isSetUserDetailsServiceInvoked) {
-			autoDetectAnyUserDetailsServiceAndUseIt(this.applicationContext);
-		}
 		Assert.notNull(this.userDetailsService, "A UserDetailsService must be set");
 	}
 
@@ -179,7 +162,6 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication
 	}
 
 	public void setUserDetailsService(UserDetailsService userDetailsService) {
-		isSetUserDetailsServiceInvoked = true;
 		this.userDetailsService = userDetailsService;
 	}
 
@@ -191,16 +173,4 @@ public class DaoAuthenticationProvider extends AbstractUserDetailsAuthentication
 		this.includeDetailsObject = includeDetailsObject;
 	}
 
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
-	public int getOrder() {
-		return order;
-	}
-
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext = applicationContext;
-	}
-
 }

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/jaas/JaasAuthenticationProvider.java

@@ -41,7 +41,6 @@ import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationEvent;
 import org.springframework.context.ApplicationListener;
 
-import org.springframework.core.Ordered;
 import org.springframework.core.io.Resource;
 
 import org.springframework.util.Assert;
@@ -142,7 +141,7 @@ import javax.security.auth.login.LoginException;
  * @version $Id$
  */
 public class JaasAuthenticationProvider implements AuthenticationProvider, InitializingBean, ApplicationContextAware,
-    ApplicationListener, Ordered {
+    ApplicationListener {
     //~ Static fields/initializers =====================================================================================
 
     protected static final Log log = LogFactory.getLog(JaasAuthenticationProvider.class);
@@ -155,18 +154,9 @@ public class JaasAuthenticationProvider implements AuthenticationProvider, Initi
     private String loginContextName = "ACEGI";
     private AuthorityGranter[] authorityGranters;
     private JaasAuthenticationCallbackHandler[] callbackHandlers;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(loginConfig, "loginConfig must be set on " + getClass());
         Assert.hasLength(loginContextName, "loginContextName must be set on " + getClass());

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/ldap/LdapAuthenticationProvider.java

@@ -32,7 +32,6 @@ import org.apache.commons.logging.LogFactory;
 
 import org.springframework.util.Assert;
 import org.springframework.util.StringUtils;
-import org.springframework.core.Ordered;
 import org.springframework.dao.DataAccessException;
 
 
@@ -114,7 +113,7 @@ import org.springframework.dao.DataAccessException;
  * @see org.acegisecurity.providers.ldap.authenticator.BindAuthenticator
  * @see org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator
  */
-public class LdapAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider implements Ordered {
+public class LdapAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(LdapAuthenticationProvider.class);
@@ -124,18 +123,9 @@ public class LdapAuthenticationProvider extends AbstractUserDetailsAuthenticatio
     private LdapAuthenticator authenticator;
     private LdapAuthoritiesPopulator authoritiesPopulator;
     private boolean includeDetailsObject = true;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Constructors ===================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	/**
      * Create an initialized instance to the values passed as arguments
      *

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/rcp/RemoteAuthenticationProvider.java

@@ -23,7 +23,6 @@ import org.acegisecurity.providers.AuthenticationProvider;
 import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;
 
 import org.springframework.beans.factory.InitializingBean;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -44,22 +43,13 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class RemoteAuthenticationProvider implements AuthenticationProvider, InitializingBean, Ordered {
+public class RemoteAuthenticationProvider implements AuthenticationProvider, InitializingBean {
     //~ Instance fields ================================================================================================
 
     private RemoteAuthenticationManager remoteAuthenticationManager;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(this.remoteAuthenticationManager, "remoteAuthenticationManager is mandatory");
     }

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/rememberme/RememberMeAuthenticationProvider.java

@@ -30,7 +30,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -41,7 +40,7 @@ import org.springframework.util.Assert;
  * {@link org.acegisecurity.providers.rememberme.RememberMeAuthenticationToken#getKeyHash()} must match this class'
  * {@link #getKey()}.</p>
  */
-public class RememberMeAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware, Ordered {
+public class RememberMeAuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(RememberMeAuthenticationProvider.class);
@@ -50,18 +49,9 @@ public class RememberMeAuthenticationProvider implements AuthenticationProvider,
 
     protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
     private String key;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.hasLength(key);
         Assert.notNull(this.messages, "A message source must be set");

+ 1 - 12
core/src/main/java/org/acegisecurity/providers/siteminder/SiteminderAuthenticationProvider.java

@@ -28,7 +28,6 @@ import org.acegisecurity.userdetails.UserDetails;
 import org.acegisecurity.userdetails.UserDetailsService;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.core.Ordered;
 import org.springframework.dao.DataAccessException;
 import org.springframework.util.Assert;
 
@@ -38,7 +37,7 @@ import org.springframework.util.Assert;
  * @author Scott McCrory
  * @version $Id: SiteminderAuthenticationProvider.java 1582 2006-07-15 15:18:51Z smccrory $
  */
-public class SiteminderAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider implements Ordered {
+public class SiteminderAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
 	
 
     /**
@@ -53,8 +52,6 @@ public class SiteminderAuthenticationProvider extends AbstractUserDetailsAuthent
      */
     private UserDetailsService userDetailsService;
     
-    private int order = -1; // default: same as non-Ordered
-
     //~ Methods ========================================================================================================
 
     /**
@@ -133,12 +130,4 @@ public class SiteminderAuthenticationProvider extends AbstractUserDetailsAuthent
         this.userDetailsService = userDetailsService;
     }
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 }

+ 1 - 11
core/src/main/java/org/acegisecurity/providers/x509/X509AuthenticationProvider.java

@@ -33,7 +33,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -47,7 +46,7 @@ import java.security.cert.X509Certificate;
  * @author Luke Taylor
  * @version $Id$
  */
-public class X509AuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware, Ordered {
+public class X509AuthenticationProvider implements AuthenticationProvider, InitializingBean, MessageSourceAware {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(X509AuthenticationProvider.class);
@@ -57,18 +56,9 @@ public class X509AuthenticationProvider implements AuthenticationProvider, Initi
     protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
     private X509AuthoritiesPopulator x509AuthoritiesPopulator;
     private X509UserCache userCache = new NullX509UserCache();
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(userCache, "An x509UserCache must be set");
         Assert.notNull(x509AuthoritiesPopulator, "An X509AuthoritiesPopulator must be set");

+ 1 - 11
core/src/main/java/org/acegisecurity/runas/RunAsImplAuthenticationProvider.java

@@ -27,7 +27,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.Ordered;
 
 import org.springframework.util.Assert;
 
@@ -39,23 +38,14 @@ import org.springframework.util.Assert;
  * <code>RunAsImplAuthenticationProvider</code>-configured key.</p>
  *  <P>If the key does not match, a <code>BadCredentialsException</code> is thrown.</p>
  */
-public class RunAsImplAuthenticationProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware, Ordered {
+public class RunAsImplAuthenticationProvider implements InitializingBean, AuthenticationProvider, MessageSourceAware {
     //~ Instance fields ================================================================================================
 
     protected MessageSourceAccessor messages = AcegiMessageSource.getAccessor();
     private String key;
-    private int order = -1; // default: same as non-Ordered
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.notNull(key, "A Key is required and should match that configured for the RunAsManagerImpl");
     }

+ 1 - 58
core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java

@@ -31,11 +31,8 @@ import org.acegisecurity.ui.savedrequest.SavedRequest;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
 
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.ApplicationEventPublisherAware;
 import org.springframework.context.MessageSource;
@@ -46,7 +43,6 @@ import org.springframework.util.Assert;
 
 import java.io.IOException;
 
-import java.util.Map;
 import java.util.Properties;
 
 import javax.servlet.Filter;
@@ -131,7 +127,7 @@ import javax.servlet.http.HttpServletResponse;
  * vishalpuri $
  */
 public abstract class AbstractProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware,
-		MessageSourceAware, ApplicationContextAware {
+		MessageSourceAware {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -202,12 +198,6 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
 	 */
 	private boolean useRelativeContext = false;
 
-	private ApplicationContext applicationContext;
-
-	private boolean isSetAuthenticationManagerInvoked = false;
-
-	private boolean isSetRememberMeServicesInvoked = false;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -215,53 +205,10 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
 		Assert.hasLength(filterProcessesUrl, "filterProcessesUrl must be specified");
 		Assert.hasLength(defaultTargetUrl, "defaultTargetUrl must be specified");
 		Assert.hasLength(authenticationFailureUrl, "authenticationFailureUrl must be specified");
-		if (!isSetAuthenticationManagerInvoked) {
-			autoDetectAuthenticationManager();
-		}
-		if (!isSetRememberMeServicesInvoked) {
-			autoDetectRememberMeServices();
-		}
 		Assert.notNull(authenticationManager, "authenticationManager must be specified");
 		Assert.notNull(this.rememberMeServices);
 	}
 
-	/**
-	 * Use the first autodetected instance of <code>RememberMeServices</code>
-	 */
-	private void autoDetectRememberMeServices() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(RememberMeServices.class);
-			if (map.size() > 0) {
-				setRememberMeServices((RememberMeServices) map.values().iterator().next());
-			}
-		}
-	}
-
-	/**
-	 * Introspects the <code>Applicationcontext</code> for the single instance
-	 * of <code>AuthenticationManager</code>. If found invoke
-	 * setAuthenticationManager method by providing the found instance of
-	 * authenticationManager as a method parameter. If more than one instance of
-	 * <code>AuthenticationManager</code> is found, the method throws
-	 * <code>IllegalStateException</code>.
-	 * 
-	 * @param applicationContext to locate the instance
-	 */
-	private void autoDetectAuthenticationManager() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(AuthenticationManager.class);
-			if (map.size() > 1) {
-				throw new IllegalArgumentException(
-						"More than one AuthenticationManager beans detected please refer to the one using "
-								+ " [ authenticationManager  ] " + "property");
-			}
-			else if (map.size() == 1) {
-				setAuthenticationManager((AuthenticationManager) map.values().iterator().next());
-			}
-		}
-
-	}
-
 	/**
 	 * Performs actual authentication.
 	 * 
@@ -604,8 +551,4 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
 		this.useRelativeContext = useRelativeContext;
 	}
 
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext = applicationContext;
-	}
-
 }

+ 1 - 29
core/src/main/java/org/acegisecurity/ui/ExceptionTranslationFilter.java

@@ -32,10 +32,8 @@ import org.acegisecurity.util.PortResolverImpl;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 
 import org.springframework.util.Assert;
 
@@ -95,7 +93,7 @@ import javax.servlet.http.HttpServletResponse;
  * @version $Id: ExceptionTranslationFilter.java 1496 2006-05-23 13:38:33Z
  * benalex $
  */
-public class ExceptionTranslationFilter implements Filter, InitializingBean, ApplicationContextAware {
+public class ExceptionTranslationFilter implements Filter, InitializingBean {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -114,18 +112,6 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
 
 	private boolean createSessionAllowed = true;
 
-	/*
-	 * applicationContext will be inject as a part of the contract of
-	 * ApplicationContextAware interface
-	 */
-	private ApplicationContext applicationContext;
-
-	/*
-	 * boolean field to track if setter for accessDeniedHandler is invoked. If
-	 * invoked the default value changes to true
-	 */
-	private boolean isSetAcessDeniedHandlerInvoked = false;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -133,14 +119,6 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
 		Assert.notNull(authenticationEntryPoint, "authenticationEntryPoint must be specified");
 		Assert.notNull(portResolver, "portResolver must be specified");
 		Assert.notNull(authenticationTrustResolver, "authenticationTrustResolver must be specified");
-
-		// autodetect AccessDeniedHandler instance in the applicationcontext if
-		// it wasn't injected.
-		if (!isSetAcessDeniedHandlerInvoked) {
-			if (applicationContext != null) {
-				autoDetectAnyAccessDeniedHandlerAndUseIt(applicationContext);
-			}
-		}
 	}
 
 	/**
@@ -301,7 +279,6 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
 	public void setAccessDeniedHandler(AccessDeniedHandler accessDeniedHandler) {
 		Assert.notNull(accessDeniedHandler, "AccessDeniedHandler required");
 		this.accessDeniedHandler = accessDeniedHandler;
-		this.isSetAcessDeniedHandlerInvoked = true;
 	}
 
 	public void setAuthenticationEntryPoint(AuthenticationEntryPoint authenticationEntryPoint) {
@@ -319,9 +296,4 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
 	public void setPortResolver(PortResolver portResolver) {
 		this.portResolver = portResolver;
 	}
-
-	public void setApplicationContext(ApplicationContext applicationContext) {
-		this.applicationContext = applicationContext;
-	}
-
 }

+ 1 - 10
core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilter.java

@@ -39,7 +39,6 @@ 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;
 
 
@@ -73,7 +72,7 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class BasicProcessingFilter implements Filter, InitializingBean, Ordered {
+public class BasicProcessingFilter implements Filter, InitializingBean {
     //~ Static fields/initializers =====================================================================================
 
 	private static final Log logger = LogFactory.getLog(BasicProcessingFilter.class);
@@ -85,7 +84,6 @@ public class BasicProcessingFilter implements Filter, InitializingBean, Ordered
     private AuthenticationManager authenticationManager;
     private RememberMeServices rememberMeServices;
     private boolean ignoreFailure = false;
-    private int order;
 
     //~ Methods ========================================================================================================
 
@@ -229,11 +227,4 @@ public class BasicProcessingFilter implements Filter, InitializingBean, Ordered
         this.rememberMeServices = rememberMeServices;
     }
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
 }

+ 1 - 22
core/src/main/java/org/acegisecurity/ui/basicauth/BasicProcessingFilterEntryPoint.java

@@ -24,11 +24,7 @@ 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;
 
 
@@ -42,29 +38,15 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered, ApplicationContextAware {
+public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
     //~ Instance fields ================================================================================================
 
-	private static final int DEFAULT_ORDER = Integer.MAX_VALUE;
     private String realmName;
-    private int order = DEFAULT_ORDER;
-    private ApplicationContext applicationContext;
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
 		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)
@@ -82,7 +64,4 @@ public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint
         this.realmName = realmName;
     }
 
-	public void setApplicationContext(ApplicationContext applicationContext) {
-		this.applicationContext = applicationContext;
-	}
 }

+ 1 - 11
core/src/main/java/org/acegisecurity/ui/cas/CasProcessingFilterEntryPoint.java

@@ -27,7 +27,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.acegisecurity.AuthenticationException;
 import org.acegisecurity.ui.AuthenticationEntryPoint;
 import org.springframework.beans.factory.InitializingBean;
-import org.springframework.core.Ordered;
 import org.springframework.util.Assert;
 
 
@@ -42,23 +41,14 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered{
+public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
     //~ Instance fields ================================================================================================
 
     private ServiceProperties serviceProperties;
     private String loginUrl;
-    private int order = Integer.MAX_VALUE; // ~ default
 
     //~ Methods ========================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public void afterPropertiesSet() throws Exception {
         Assert.hasLength(this.loginUrl, "loginUrl must be specified");
         Assert.notNull(this.serviceProperties, "serviceProperties must be specified");

+ 1 - 10
core/src/main/java/org/acegisecurity/ui/logout/LogoutFilter.java

@@ -30,9 +30,6 @@ import org.acegisecurity.Authentication;
 import org.acegisecurity.context.SecurityContextHolder;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.BeansException;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.util.Assert;
 
 /**
@@ -55,7 +52,7 @@ import org.springframework.util.Assert;
  * @author Ben Alex
  * @version $Id$
  */
-public class LogoutFilter implements Filter, ApplicationContextAware {
+public class LogoutFilter implements Filter {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -70,8 +67,6 @@ public class LogoutFilter implements Filter, ApplicationContextAware {
 
 	private LogoutHandler[] handlers;
 
-	private ApplicationContext applicationContext;
-
 	// ~ Constructors
 	// ===================================================================================================
 
@@ -181,8 +176,4 @@ public class LogoutFilter implements Filter, ApplicationContextAware {
 		this.filterProcessesUrl = filterProcessesUrl;
 	}
 
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext = applicationContext;
-	}
-
 }

+ 1 - 14
core/src/main/java/org/acegisecurity/ui/logout/SecurityContextLogoutHandler.java

@@ -18,7 +18,6 @@ package org.acegisecurity.ui.logout;
 import org.acegisecurity.Authentication;
 
 import org.acegisecurity.context.SecurityContextHolder;
-import org.springframework.core.Ordered;
 import org.springframework.util.Assert;
 
 import javax.servlet.http.HttpServletRequest;
@@ -38,16 +37,12 @@ import javax.servlet.http.HttpSession;
  * @version $Id: SecurityContextLogoutHandler.java 1784 2007-02-24 21:00:24Z
  * luke_t $
  */
-public class SecurityContextLogoutHandler implements LogoutHandler, Ordered {
+public class SecurityContextLogoutHandler implements LogoutHandler {
 	// ~ Methods
 	// ========================================================================================================
 
 	private boolean invalidateHttpSession = true;
 
-	private int DEFAULT_ORDER = Integer.MAX_VALUE; // ~ default
-
-	private int order = DEFAULT_ORDER;
-
 	/**
 	 * Requires the request to be passed in.
 	 * 
@@ -82,12 +77,4 @@ public class SecurityContextLogoutHandler implements LogoutHandler, Ordered {
 		this.invalidateHttpSession = invalidateHttpSession;
 	}
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 }

+ 1 - 56
core/src/main/java/org/acegisecurity/ui/rememberme/RememberMeProcessingFilter.java

@@ -26,18 +26,14 @@ import org.acegisecurity.event.authentication.InteractiveAuthenticationSuccessEv
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
 
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.ApplicationEventPublisherAware;
 
 import org.springframework.util.Assert;
 
 import java.io.IOException;
-import java.util.Map;
 
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
@@ -68,7 +64,7 @@ import javax.servlet.http.HttpServletResponse;
  * @author Ben Alex
  * @version $Id$
  */
-public class RememberMeProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware, ApplicationContextAware {
+public class RememberMeProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware {
     //~ Static fields/initializers =====================================================================================
 
     private static final Log logger = LogFactory.getLog(RememberMeProcessingFilter.class);
@@ -79,60 +75,13 @@ public class RememberMeProcessingFilter implements Filter, InitializingBean, App
     private AuthenticationManager authenticationManager;
     private RememberMeServices rememberMeServices = new NullRememberMeServices();
 
-	private ApplicationContext applicationContext;
-
-	private boolean isSetAuthenticationManagerInvoked = false;
-
-	private boolean isSetRememberMeServicesInvoked = false;
-
     //~ Methods ========================================================================================================
 
     public void afterPropertiesSet() throws Exception {
-    	if (!isSetAuthenticationManagerInvoked) {
-			autoDetectAuthenticationManager();
-		}
-		if (!isSetRememberMeServicesInvoked ) {
-			autoDetectRememberMeServices();
-		}
 		Assert.notNull(authenticationManager, "authenticationManager must be specified");
 		Assert.notNull(this.rememberMeServices);
 	}
 
-	private void autoDetectRememberMeServices() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(RememberMeServices.class);
-			if (map.size() > 0) {
-				setRememberMeServices((RememberMeServices) map.values().iterator().next());
-			}      
-		}
-	}
-
-	/**
-	 * Introspects the <code>Applicationcontext</code> for the single instance
-	 * of <code>AuthenticationManager</code>. If found invoke
-	 * setAuthenticationManager method by providing the found instance of
-	 * authenticationManager as a method parameter. If more than one instance of
-	 * <code>AuthenticationManager</code> is found, the method throws
-	 * <code>IllegalStateException</code>.
-	 * 
-	 * @param applicationContext to locate the instance
-	 */
-	private void autoDetectAuthenticationManager() {
-		if (applicationContext != null) {
-			Map map = applicationContext.getBeansOfType(AuthenticationManager.class);
-			if (map.size() > 1) {
-				throw new IllegalArgumentException(
-						"More than one AuthenticationManager beans detected please refer to the one using "
-								+ " [ authenticationManager  ] " + "property");
-			}
-			else if (map.size() == 1) {
-				setAuthenticationManager((AuthenticationManager) map.values().iterator().next());
-			}
-		}
-
-	}
-    
-
     /**
      * Does nothing - we rely on IoC lifecycle services instead.
      */
@@ -219,8 +168,4 @@ public class RememberMeProcessingFilter implements Filter, InitializingBean, App
         this.rememberMeServices = rememberMeServices;
     }
 
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext=applicationContext;
-	}
-    
 }

+ 1 - 30
core/src/main/java/org/acegisecurity/ui/rememberme/TokenBasedRememberMeServices.java

@@ -25,7 +25,6 @@ import javax.servlet.http.HttpServletResponse;
 import org.acegisecurity.Authentication;
 import org.acegisecurity.providers.rememberme.RememberMeAuthenticationToken;
 import org.acegisecurity.ui.AccessDeniedHandler;
-import org.acegisecurity.ui.AccessDeniedHandlerImpl;
 import org.acegisecurity.ui.AuthenticationDetailsSource;
 import org.acegisecurity.ui.AuthenticationDetailsSourceImpl;
 import org.acegisecurity.ui.logout.LogoutHandler;
@@ -36,11 +35,8 @@ import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.BeansException;
 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;
 import org.springframework.util.StringUtils;
 import org.springframework.web.bind.RequestUtils;
@@ -105,8 +101,7 @@ import org.springframework.web.bind.RequestUtils;
  * @version $Id: TokenBasedRememberMeServices.java 1871 2007-05-25 03:12:49Z
  * benalex $
  */
-public class TokenBasedRememberMeServices implements RememberMeServices, InitializingBean, LogoutHandler, Ordered,
-		ApplicationContextAware {
+public class TokenBasedRememberMeServices implements RememberMeServices, InitializingBean, LogoutHandler {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -133,14 +128,8 @@ public class TokenBasedRememberMeServices implements RememberMeServices, Initial
 
 	private static final int DEFAULT_ORDER = Integer.MAX_VALUE; // ~ default
 
-	private int order = DEFAULT_ORDER;
-
 	private String cookieName = ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE_KEY;
 
-	private boolean isSetUserDetailsServiceInvoked = false;
-
-	private ApplicationContext applicationContext;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -148,11 +137,6 @@ public class TokenBasedRememberMeServices implements RememberMeServices, Initial
 		Assert.hasLength(key);
 		Assert.hasLength(parameter);
 		Assert.hasLength(cookieName);
-		if (applicationContext != null) {
-			if (!isSetUserDetailsServiceInvoked) {
-				autoDetectAndUseAnyUserDetailsService(applicationContext);
-			}
-		}
 		Assert.notNull(userDetailsService);
 	}
 
@@ -485,7 +469,6 @@ public class TokenBasedRememberMeServices implements RememberMeServices, Initial
 
 	public void setUserDetailsService(UserDetailsService userDetailsService) {
 		this.userDetailsService = userDetailsService;
-		this.isSetUserDetailsServiceInvoked = true;
 	}
 
 	public boolean isAlwaysRemember() {
@@ -496,18 +479,6 @@ public class TokenBasedRememberMeServices implements RememberMeServices, Initial
 		this.alwaysRemember = alwaysRemember;
 	}
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
-	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-		this.applicationContext = applicationContext;
-	}
-
 	public String getCookieName() {
 		return cookieName;
 	}

+ 1 - 14
core/src/main/java/org/acegisecurity/ui/webapp/AuthenticationProcessingFilterEntryPoint.java

@@ -28,7 +28,6 @@ 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;
 
@@ -64,7 +63,7 @@ import javax.servlet.http.HttpServletResponse;
  * @version $Id: AuthenticationProcessingFilterEntryPoint.java 1873 2007-05-25
  * 03:21:17Z benalex $
  */
-public class AuthenticationProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered {
+public class AuthenticationProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
@@ -83,10 +82,6 @@ public class AuthenticationProcessingFilterEntryPoint implements AuthenticationE
 
 	private boolean serverSideRedirect = false;
 
-	private int DEFAULT_ORDER = Integer.MAX_VALUE;// ~ default
-
-	private int order = DEFAULT_ORDER;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -267,12 +262,4 @@ public class AuthenticationProcessingFilterEntryPoint implements AuthenticationE
 		this.serverSideRedirect = serverSideRedirect;
 	}
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 }

+ 1 - 15
core/src/main/java/org/acegisecurity/ui/x509/X509ProcessingFilterEntryPoint.java

@@ -26,7 +26,6 @@ import org.acegisecurity.AuthenticationException;
 import org.acegisecurity.ui.AuthenticationEntryPoint;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.springframework.core.Ordered;
 
 /**
  * In the X.509 authentication case (unlike CAS, for example) the certificate
@@ -47,28 +46,15 @@ import org.springframework.core.Ordered;
  * 
  * @see org.acegisecurity.ui.ExceptionTranslationFilter
  */
-public class X509ProcessingFilterEntryPoint implements AuthenticationEntryPoint, Ordered {
+public class X509ProcessingFilterEntryPoint implements AuthenticationEntryPoint {
 	// ~ Static fields/initializers
 	// =====================================================================================
 
 	private static final Log logger = LogFactory.getLog(X509ProcessingFilterEntryPoint.class);
 
-	// ~ instance fields
-	// =====================================================================================
-	
-	private int order = Integer.MAX_VALUE; // ~ default
-
 	// ~ Methods
 	// ========================================================================================================
 
-	public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	/**
 	 * Returns a 403 error code to the client.
 	 * 

+ 1 - 30
core/src/main/java/org/acegisecurity/vote/AbstractAccessDecisionManager.java

@@ -15,25 +15,17 @@
 
 package org.acegisecurity.vote;
 
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
-import java.util.Map;
 
 import org.acegisecurity.AccessDecisionManager;
 import org.acegisecurity.AccessDeniedException;
 import org.acegisecurity.AcegiMessageSource;
 import org.acegisecurity.ConfigAttribute;
-import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.InitializingBean;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.MessageSource;
 import org.springframework.context.MessageSourceAware;
 import org.springframework.context.support.MessageSourceAccessor;
-import org.springframework.core.OrderComparator;
-import org.springframework.core.Ordered;
 import org.springframework.util.Assert;
 
 /**
@@ -45,7 +37,7 @@ import org.springframework.util.Assert;
  * </p>
  */
 public abstract class AbstractAccessDecisionManager implements AccessDecisionManager, InitializingBean,
-        MessageSourceAware, ApplicationContextAware {
+        MessageSourceAware {
     // ~ Instance fields
     // ================================================================================================
 
@@ -55,31 +47,14 @@ public abstract class AbstractAccessDecisionManager implements AccessDecisionMan
 
     private boolean allowIfAllAbstainDecisions = false;
 
-    private ApplicationContext applicationContext;
-
     // ~ Methods
     // ========================================================================================================
 
     public void afterPropertiesSet() throws Exception {
-        if (decisionVoters == null || decisionVoters.isEmpty()) {
-            autoDetectVoters();
-        }
         Assert.notEmpty(this.decisionVoters, "A list of AccessDecisionVoters is required");
         Assert.notNull(this.messages, "A message source must be set");
     }
 
-    private void autoDetectVoters() {
-        Assert.notNull(applicationContext, "Auto-detection of voters requires an application context");
-        Map map = this.applicationContext.getBeansOfType(AccessDecisionVoter.class);
-        List list = new ArrayList();
-
-        for (Iterator it = map.values().iterator(); it.hasNext();) {
-            list.add((it.next()));
-        }
-        Collections.sort(list, new OrderComparator());
-        setDecisionVoters(list);
-    }
-
     protected final void checkAllowIfAllAbstainDecisions() {
         if (!this.isAllowIfAllAbstainDecisions()) {
             throw new AccessDeniedException(messages.getMessage("AbstractAccessDecisionManager.accessDenied",
@@ -155,8 +130,4 @@ public abstract class AbstractAccessDecisionManager implements AccessDecisionMan
 
         return true;
     }
-
-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
-        this.applicationContext = applicationContext;
-	}
 }

+ 1 - 15
core/src/main/java/org/acegisecurity/vote/AuthenticatedVoter.java

@@ -21,7 +21,6 @@ import org.acegisecurity.AuthenticationTrustResolverImpl;
 import org.acegisecurity.ConfigAttribute;
 import org.acegisecurity.ConfigAttributeDefinition;
 
-import org.springframework.core.Ordered;
 import org.springframework.util.Assert;
 
 import java.util.Iterator;
@@ -42,20 +41,16 @@ import java.util.Iterator;
  * @author Ben Alex
  * @version $Id$
  */
-public class AuthenticatedVoter implements AccessDecisionVoter, Ordered {
+public class AuthenticatedVoter implements AccessDecisionVoter {
     //~ Static fields/initializers =====================================================================================
 
     public static final String IS_AUTHENTICATED_FULLY = "IS_AUTHENTICATED_FULLY";
     public static final String IS_AUTHENTICATED_REMEMBERED = "IS_AUTHENTICATED_REMEMBERED";
     public static final String IS_AUTHENTICATED_ANONYMOUSLY = "IS_AUTHENTICATED_ANONYMOUSLY";
-    public static int DEFAULT_ORDER = Ordered.LOWEST_PRECEDENCE;
     //~ Instance fields ================================================================================================
 
     private AuthenticationTrustResolver authenticationTrustResolver = new AuthenticationTrustResolverImpl();
     
-    private int order = DEFAULT_ORDER;
-    
-
     //~ Methods ========================================================================================================
 
     private boolean isFullyAuthenticated(Authentication authentication) {
@@ -124,13 +119,4 @@ public class AuthenticatedVoter implements AccessDecisionVoter, Ordered {
 
         return result;
     }
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
-	public int getOrder() {
-		return order;
-	}
-
 }

+ 3 - 19
core/src/main/java/org/acegisecurity/vote/RoleVoter.java

@@ -15,12 +15,11 @@
 
 package org.acegisecurity.vote;
 
+import java.util.Iterator;
+
 import org.acegisecurity.Authentication;
 import org.acegisecurity.ConfigAttribute;
 import org.acegisecurity.ConfigAttributeDefinition;
-import org.springframework.core.Ordered;
-
-import java.util.Iterator;
 
 /**
  * <p>
@@ -55,18 +54,12 @@ import java.util.Iterator;
  * @author colin sampaleanu
  * @version $Id$
  */
-public class RoleVoter implements AccessDecisionVoter, Ordered {
-	// ~ Static fields/initializers
-	// =====================================================================================
-	public static int DEFAULT_ORDER = Ordered.LOWEST_PRECEDENCE;
-
+public class RoleVoter implements AccessDecisionVoter {
 	// ~ Instance fields
 	// ================================================================================================
 
 	private String rolePrefix = "ROLE_";
 
-	private int order = DEFAULT_ORDER;
-
 	// ~ Methods
 	// ========================================================================================================
 
@@ -126,13 +119,4 @@ public class RoleVoter implements AccessDecisionVoter, Ordered {
 
 		return result;
 	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
-	public int getOrder() {
-		return order;
-	}
-
 }

+ 1 - 11
core/src/test/java/org/acegisecurity/MockAuthenticationEntryPoint.java

@@ -24,7 +24,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.acegisecurity.ui.AuthenticationEntryPoint;
-import org.springframework.core.Ordered;
 
 
 /**
@@ -33,22 +32,13 @@ import org.springframework.core.Ordered;
  * @author Ben Alex
  * @version $Id$
  */
-public class MockAuthenticationEntryPoint implements AuthenticationEntryPoint, Ordered {
+public class MockAuthenticationEntryPoint implements AuthenticationEntryPoint {
     //~ Instance fields ================================================================================================
 
     private String url;
-    private int order = Integer.MAX_VALUE; // ~ default
 
     //~ Constructors ===================================================================================================
 
-    public int getOrder() {
-		return order;
-	}
-
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
 	public MockAuthenticationEntryPoint(String url) {
         this.url = url;
     }

+ 1 - 14
core/src/test/java/org/acegisecurity/vote/DenyAgainVoter.java

@@ -18,7 +18,6 @@ package org.acegisecurity.vote;
 import org.acegisecurity.Authentication;
 import org.acegisecurity.ConfigAttribute;
 import org.acegisecurity.ConfigAttributeDefinition;
-import org.springframework.core.Ordered;
 
 import java.util.Iterator;
 
@@ -35,11 +34,7 @@ import java.util.Iterator;
  * @author Ben Alex
  * @version $Id$
  */
-public class DenyAgainVoter implements AccessDecisionVoter, Ordered {
-	public static int DEFAULT_ORDER = Ordered.LOWEST_PRECEDENCE;
-
-	private int order = DEFAULT_ORDER;
-
+public class DenyAgainVoter implements AccessDecisionVoter {
 	// ~ Methods
 	// ========================================================================================================
 
@@ -70,12 +65,4 @@ public class DenyAgainVoter implements AccessDecisionVoter, Ordered {
 		return ACCESS_ABSTAIN;
 	}
 	
-	public void setOrder(int order) {
-		this.order = order;
-	}
-
-	public int getOrder() {
-		return order;
-	}
-
 }