org.springframework.security.access.vote
Class UnanimousBased

java.lang.Object
  extended by org.springframework.security.access.vote.AbstractAccessDecisionManager
      extended by org.springframework.security.access.vote.UnanimousBased
All Implemented Interfaces:
org.springframework.beans.factory.InitializingBean, org.springframework.context.MessageSourceAware, AccessDecisionManager

public class UnanimousBased
extends AbstractAccessDecisionManager

Simple concrete implementation of AccessDecisionManager that requires all voters to abstain or grant access.


Field Summary
 
Fields inherited from class org.springframework.security.access.vote.AbstractAccessDecisionManager
logger, messages
 
Constructor Summary
UnanimousBased()
           
 
Method Summary
 void decide(Authentication authentication, java.lang.Object object, java.util.Collection<ConfigAttribute> attributes)
          This concrete implementation polls all configured AccessDecisionVoters for each ConfigAttribute and grants access if only grant (or abstain) votes were received.
 
Methods inherited from class org.springframework.security.access.vote.AbstractAccessDecisionManager
afterPropertiesSet, checkAllowIfAllAbstainDecisions, getDecisionVoters, isAllowIfAllAbstainDecisions, setAllowIfAllAbstainDecisions, setDecisionVoters, setMessageSource, supports, supports
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UnanimousBased

public UnanimousBased()
Method Detail

decide

public void decide(Authentication authentication,
                   java.lang.Object object,
                   java.util.Collection<ConfigAttribute> attributes)
            throws AccessDeniedException
This concrete implementation polls all configured AccessDecisionVoters for each ConfigAttribute and grants access if only grant (or abstain) votes were received.

Other voting implementations usually pass the entire list of ConfigAttributes to the AccessDecisionVoter. This implementation differs in that each AccessDecisionVoter knows only about a single ConfigAttribute at a time.

If every AccessDecisionVoter abstained from voting, the decision will be based on the AbstractAccessDecisionManager.isAllowIfAllAbstainDecisions() property (defaults to false).

Parameters:
authentication - the caller invoking the method
object - the secured object
attributes - the configuration attributes associated with the method being invoked
Throws:
AccessDeniedException - if access is denied