クラス ConsensusBased

  • 実装されたすべてのインターフェース:
    org.springframework.beans.factory.Awareorg.springframework.beans.factory.InitializingBeanorg.springframework.context.MessageSourceAwareAccessDecisionManager

    public class ConsensusBased
    extends AbstractAccessDecisionManager
    コンセンサスベースのアプローチを使用する AccessDecisionManager のシンプルで具体的な実装。

    ここでの「コンセンサス」とは、全会一致(棄権を無視)ではなく、多数決(棄権を無視)を意味します。全会一致が必要な場合は、UnanimousBased を参照してください。

    • コンストラクターの詳細

      • ConsensusBased

        public ConsensusBased​(java.util.List<AccessDecisionVoter<?>> decisionVoters)
    • メソッドの詳細

      • decide

        public void decide​(Authentication authentication,
                           java.lang.Object object,
                           java.util.Collection<ConfigAttribute> configAttributes)
                    throws AccessDeniedException
        この具体的な実装は、構成されたすべての AccessDecisionVoter をポーリングするだけで、完了時に、拒否されたレスポンスに対して許可されたコンセンサスを決定します。

        賛成票と拒否票の数が等しい場合、決定は isAllowIfEqualGrantedDeniedDecisions() プロパティに基づいて行われます(デフォルトは true)。

        すべての AccessDecisionVoter が投票を棄権した場合、決定は AbstractAccessDecisionManager.isAllowIfAllAbstainDecisions() プロパティに基づいて行われます(デフォルトは false)。

        パラメーター:
        authentication - メソッドを呼び出す呼び出し元
        object - 保護されたオブジェクト
        configAttributes - 呼び出されるメソッドに関連付けられた構成属性
        例外:
        AccessDeniedException - アクセスが拒否された場合
      • isAllowIfEqualGrantedDeniedDecisions

        public boolean isAllowIfEqualGrantedDeniedDecisions()
      • setAllowIfEqualGrantedDeniedDecisions

        public void setAllowIfEqualGrantedDeniedDecisions​(boolean allowIfEqualGrantedDeniedDecisions)