SEC-271: Revert Ordered and ApplicationContextAware usage at this time, due to release of 1.0..
This commit is contained in:
parent
7a5c1ee328
commit
db3024f9a4
|
@ -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");
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
|
|
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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");
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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.
|
||||||
*
|
*
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue