org.springframework.security.access.vote
Class AbstractAccessDecisionManager

java.lang.Object
  extended by org.springframework.security.access.vote.AbstractAccessDecisionManager
All Implemented Interfaces:
Aware, InitializingBean, MessageSourceAware, AccessDecisionManager
Direct Known Subclasses:
AffirmativeBased, ConsensusBased, UnanimousBased

public abstract class AbstractAccessDecisionManager
extends Object
implements AccessDecisionManager, InitializingBean, MessageSourceAware

Abstract implementation of AccessDecisionManager.

Handles configuration of a bean context defined list of AccessDecisionVoters and the access control behaviour if all voters abstain from voting (defaults to deny access).


Field Summary
protected  org.apache.commons.logging.Log logger
           
protected  MessageSourceAccessor messages
           
 
Constructor Summary
protected AbstractAccessDecisionManager()
           
protected AbstractAccessDecisionManager(List<AccessDecisionVoter> decisionVoters)
           
 
Method Summary
 void afterPropertiesSet()
           
protected  void checkAllowIfAllAbstainDecisions()
           
 List<AccessDecisionVoter> getDecisionVoters()
           
 boolean isAllowIfAllAbstainDecisions()
           
 void setAllowIfAllAbstainDecisions(boolean allowIfAllAbstainDecisions)
           
 void setDecisionVoters(List<AccessDecisionVoter> newList)
          Deprecated. Use constructor
 void setMessageSource(MessageSource messageSource)
           
 boolean supports(Class<?> clazz)
          Iterates through all AccessDecisionVoters and ensures each can support the presented class.
 boolean supports(ConfigAttribute attribute)
          Indicates whether this AccessDecisionManager is able to process authorization requests presented with the passed ConfigAttribute.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.security.access.AccessDecisionManager
decide
 

Field Detail

logger

protected final org.apache.commons.logging.Log logger

messages

protected MessageSourceAccessor messages
Constructor Detail

AbstractAccessDecisionManager

protected AbstractAccessDecisionManager()

AbstractAccessDecisionManager

protected AbstractAccessDecisionManager(List<AccessDecisionVoter> decisionVoters)
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception

checkAllowIfAllAbstainDecisions

protected final void checkAllowIfAllAbstainDecisions()

getDecisionVoters

public List<AccessDecisionVoter> getDecisionVoters()

isAllowIfAllAbstainDecisions

public boolean isAllowIfAllAbstainDecisions()

setAllowIfAllAbstainDecisions

public void setAllowIfAllAbstainDecisions(boolean allowIfAllAbstainDecisions)

setDecisionVoters

@Deprecated
public void setDecisionVoters(List<AccessDecisionVoter> newList)
Deprecated. Use constructor


setMessageSource

public void setMessageSource(MessageSource messageSource)
Specified by:
setMessageSource in interface MessageSourceAware

supports

public boolean supports(ConfigAttribute attribute)
Description copied from interface: AccessDecisionManager
Indicates whether this AccessDecisionManager is able to process authorization requests presented with the passed ConfigAttribute.

This allows the AbstractSecurityInterceptor to check every configuration attribute can be consumed by the configured AccessDecisionManager and/or RunAsManager and/or AfterInvocationManager.

Specified by:
supports in interface AccessDecisionManager
Parameters:
attribute - a configuration attribute that has been configured against the AbstractSecurityInterceptor
Returns:
true if this AccessDecisionManager can support the passed configuration attribute

supports

public boolean supports(Class<?> clazz)
Iterates through all AccessDecisionVoters and ensures each can support the presented class.

If one or more voters cannot support the presented class, false is returned.

Specified by:
supports in interface AccessDecisionManager
Parameters:
clazz - the type of secured object being presented
Returns:
true if this type is supported