Class UnanimousBased

  • All Implemented Interfaces:
    org.springframework.beans.factory.Aware, 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.
    • Constructor Detail

      • UnanimousBased

        public UnanimousBased​(java.util.List<AccessDecisionVoter<?>> decisionVoters)
    • 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