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

This commit is contained in:
Ben Alex 2007-08-25 00:15:30 +00:00
parent 7a5c1ee328
commit db3024f9a4
28 changed files with 31 additions and 566 deletions

View File

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

View File

@ -39,11 +39,8 @@ import org.acegisecurity.runas.NullRunAsManager;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean; 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.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.ApplicationEventPublisherAware;
@ -55,7 +52,6 @@ import org.springframework.util.Assert;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** /**
@ -121,7 +117,7 @@ import java.util.Set;
* luke_t $ * luke_t $
*/ */
public abstract class AbstractSecurityInterceptor implements InitializingBean, ApplicationEventPublisherAware, public abstract class AbstractSecurityInterceptor implements InitializingBean, ApplicationEventPublisherAware,
MessageSourceAware, ApplicationContextAware { MessageSourceAware {
// ~ Static fields/initializers // ~ Static fields/initializers
// ===================================================================================== // =====================================================================================
@ -148,12 +144,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
private boolean validateConfigAttributes = true; private boolean validateConfigAttributes = true;
private boolean isSetAuthenticationManagerInvoked = false;
private boolean isSetAccessDecisionManagerInvoked = false;
private ApplicationContext applicationContext;
// ~ Methods // ~ Methods
// ======================================================================================================== // ========================================================================================================
@ -206,14 +196,8 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
Assert.notNull(this.messages, "A message source must be set"); Assert.notNull(this.messages, "A message source must be set");
if (!isSetAuthenticationManagerInvoked) {
autoDetectAuthenticationManager();
}
Assert.notNull(this.authenticationManager, "An AuthenticationManager is required"); Assert.notNull(this.authenticationManager, "An AuthenticationManager is required");
if (!isSetAccessDecisionManagerInvoked) {
autoDetectAccessDecisionManager();
}
Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required"); Assert.notNull(this.accessDecisionManager, "An AccessDecisionManager is required");
Assert.notNull(this.runAsManager, "A RunAsManager 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) { protected InterceptorStatusToken beforeInvocation(Object object) {
Assert.notNull(object, "Object was null"); Assert.notNull(object, "Object was null");
@ -479,7 +422,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
public abstract ObjectDefinitionSource obtainObjectDefinitionSource(); public abstract ObjectDefinitionSource obtainObjectDefinitionSource();
public void setAccessDecisionManager(AccessDecisionManager accessDecisionManager) { public void setAccessDecisionManager(AccessDecisionManager accessDecisionManager) {
isSetAccessDecisionManagerInvoked = true;
this.accessDecisionManager = accessDecisionManager; this.accessDecisionManager = accessDecisionManager;
} }
@ -509,7 +451,6 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
} }
public void setAuthenticationManager(AuthenticationManager newManager) { public void setAuthenticationManager(AuthenticationManager newManager) {
isSetAuthenticationManagerInvoked = true;
this.authenticationManager = newManager; this.authenticationManager = newManager;
} }
@ -551,8 +492,4 @@ public abstract class AbstractSecurityInterceptor implements InitializingBean, A
this.eventPublisher.publishEvent(event); this.eventPublisher.publishEvent(event);
} }
} }
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -31,11 +31,8 @@ import org.acegisecurity.ui.savedrequest.SavedRequest;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean; 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.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.MessageSource; import org.springframework.context.MessageSource;
@ -46,7 +43,6 @@ import org.springframework.util.Assert;
import java.io.IOException; import java.io.IOException;
import java.util.Map;
import java.util.Properties; import java.util.Properties;
import javax.servlet.Filter; import javax.servlet.Filter;
@ -131,7 +127,7 @@ import javax.servlet.http.HttpServletResponse;
* vishalpuri $ * vishalpuri $
*/ */
public abstract class AbstractProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware, public abstract class AbstractProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware,
MessageSourceAware, ApplicationContextAware { MessageSourceAware {
// ~ Static fields/initializers // ~ Static fields/initializers
// ===================================================================================== // =====================================================================================
@ -202,12 +198,6 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
*/ */
private boolean useRelativeContext = false; private boolean useRelativeContext = false;
private ApplicationContext applicationContext;
private boolean isSetAuthenticationManagerInvoked = false;
private boolean isSetRememberMeServicesInvoked = false;
// ~ Methods // ~ Methods
// ======================================================================================================== // ========================================================================================================
@ -215,53 +205,10 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
Assert.hasLength(filterProcessesUrl, "filterProcessesUrl must be specified"); Assert.hasLength(filterProcessesUrl, "filterProcessesUrl must be specified");
Assert.hasLength(defaultTargetUrl, "defaultTargetUrl must be specified"); Assert.hasLength(defaultTargetUrl, "defaultTargetUrl must be specified");
Assert.hasLength(authenticationFailureUrl, "authenticationFailureUrl 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(authenticationManager, "authenticationManager must be specified");
Assert.notNull(this.rememberMeServices); 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. * Performs actual authentication.
* *
@ -604,8 +551,4 @@ public abstract class AbstractProcessingFilter implements Filter, InitializingBe
this.useRelativeContext = useRelativeContext; this.useRelativeContext = useRelativeContext;
} }
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
} }

View File

@ -32,10 +32,8 @@ import org.acegisecurity.util.PortResolverImpl;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.util.Assert; 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 * @version $Id: ExceptionTranslationFilter.java 1496 2006-05-23 13:38:33Z
* benalex $ * benalex $
*/ */
public class ExceptionTranslationFilter implements Filter, InitializingBean, ApplicationContextAware { public class ExceptionTranslationFilter implements Filter, InitializingBean {
// ~ Static fields/initializers // ~ Static fields/initializers
// ===================================================================================== // =====================================================================================
@ -114,18 +112,6 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
private boolean createSessionAllowed = true; 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 // ~ Methods
// ======================================================================================================== // ========================================================================================================
@ -133,14 +119,6 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
Assert.notNull(authenticationEntryPoint, "authenticationEntryPoint must be specified"); Assert.notNull(authenticationEntryPoint, "authenticationEntryPoint must be specified");
Assert.notNull(portResolver, "portResolver must be specified"); Assert.notNull(portResolver, "portResolver must be specified");
Assert.notNull(authenticationTrustResolver, "authenticationTrustResolver 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) { public void setAccessDeniedHandler(AccessDeniedHandler accessDeniedHandler) {
Assert.notNull(accessDeniedHandler, "AccessDeniedHandler required"); Assert.notNull(accessDeniedHandler, "AccessDeniedHandler required");
this.accessDeniedHandler = accessDeniedHandler; this.accessDeniedHandler = accessDeniedHandler;
this.isSetAcessDeniedHandlerInvoked = true;
} }
public void setAuthenticationEntryPoint(AuthenticationEntryPoint authenticationEntryPoint) { public void setAuthenticationEntryPoint(AuthenticationEntryPoint authenticationEntryPoint) {
@ -319,9 +296,4 @@ public class ExceptionTranslationFilter implements Filter, InitializingBean, App
public void setPortResolver(PortResolver portResolver) { public void setPortResolver(PortResolver portResolver) {
this.portResolver = portResolver; this.portResolver = portResolver;
} }
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
} }

View File

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

View File

@ -24,11 +24,7 @@ import javax.servlet.http.HttpServletResponse;
import org.acegisecurity.AuthenticationException; import org.acegisecurity.AuthenticationException;
import org.acegisecurity.ui.AuthenticationEntryPoint; import org.acegisecurity.ui.AuthenticationEntryPoint;
import org.acegisecurity.util.OrderedUtils;
import org.springframework.beans.factory.InitializingBean; 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.Assert;
@ -42,29 +38,15 @@ import org.springframework.util.Assert;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered, ApplicationContextAware { public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private static final int DEFAULT_ORDER = Integer.MAX_VALUE;
private String realmName; private String realmName;
private int order = DEFAULT_ORDER;
private ApplicationContext applicationContext;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
Assert.hasText(realmName, "realmName must be specified"); Assert.hasText(realmName, "realmName must be specified");
if (order == DEFAULT_ORDER) {
OrderedUtils.copyOrderFromOtherClass(BasicProcessingFilter.class, applicationContext, this, true);
}
} }
public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException) public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException)
@ -82,7 +64,4 @@ public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint
this.realmName = realmName; this.realmName = realmName;
} }
public void setApplicationContext(ApplicationContext applicationContext) {
this.applicationContext = applicationContext;
}
} }

View File

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

View File

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

View File

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

View File

@ -26,18 +26,14 @@ import org.acegisecurity.event.authentication.InteractiveAuthenticationSuccessEv
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean; 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.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import java.io.IOException; import java.io.IOException;
import java.util.Map;
import javax.servlet.Filter; import javax.servlet.Filter;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
@ -68,7 +64,7 @@ import javax.servlet.http.HttpServletResponse;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class RememberMeProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware, ApplicationContextAware { public class RememberMeProcessingFilter implements Filter, InitializingBean, ApplicationEventPublisherAware {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(RememberMeProcessingFilter.class); private static final Log logger = LogFactory.getLog(RememberMeProcessingFilter.class);
@ -79,60 +75,13 @@ public class RememberMeProcessingFilter implements Filter, InitializingBean, App
private AuthenticationManager authenticationManager; private AuthenticationManager authenticationManager;
private RememberMeServices rememberMeServices = new NullRememberMeServices(); private RememberMeServices rememberMeServices = new NullRememberMeServices();
private ApplicationContext applicationContext;
private boolean isSetAuthenticationManagerInvoked = false;
private boolean isSetRememberMeServicesInvoked = false;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public void afterPropertiesSet() throws Exception { public void afterPropertiesSet() throws Exception {
if (!isSetAuthenticationManagerInvoked) {
autoDetectAuthenticationManager();
}
if (!isSetRememberMeServicesInvoked ) {
autoDetectRememberMeServices();
}
Assert.notNull(authenticationManager, "authenticationManager must be specified"); Assert.notNull(authenticationManager, "authenticationManager must be specified");
Assert.notNull(this.rememberMeServices); 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. * Does nothing - we rely on IoC lifecycle services instead.
*/ */
@ -219,8 +168,4 @@ public class RememberMeProcessingFilter implements Filter, InitializingBean, App
this.rememberMeServices = rememberMeServices; this.rememberMeServices = rememberMeServices;
} }
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext=applicationContext;
}
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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