クラス RoleVoter

  • 実装されたすべてのインターフェース:
    AccessDecisionVoter<java.lang.Object>
    既知の直属サブクラス
    RoleHierarchyVoter

    public class RoleVoter
    extends java.lang.Object
    implements AccessDecisionVoter<java.lang.Object>
    ConfigAttribute.getAttribute() がロールであることを示す接頭辞で始まる場合は投票します。デフォルトのプレフィックス文字列は ROLE_ ですが、これは任意の値にオーバーライドできます。また、空に設定することもできます。つまり、基本的にすべての属性が投票されます。以下でさらに説明するように、空のプレフィックスの影響はあまり望ましくない場合があります。

    ロール接頭辞で始まる構成属性がない場合は、投票を控えます。ロールプレフィックスで始まる ConfigAttribute と完全に一致する GrantedAuthority がある場合、アクセスを許可するための投票。ロールプレフィックスで始まる ConfigAttribute と正確に一致する GrantedAuthority がない場合、アクセスを拒否する投票。

    空のロール接頭辞は、投票者がすべての ConfigAttribute に投票することを意味します。使用される ConfigAttributes の異なるカテゴリがある場合、投票者はロールを表さない属性に投票するため、これは最適ではありません。ただし、このオプションは、プレフィックスなしで既存のロール名を使用するときに役立つ場合があり、たとえば JdbcDaoImpl で提供されるように、読み取るときにロールプレフィックスをプレフィックスとして付ける機能はありません。

    すべての比較と接頭辞は大文字と小文字が区別されます。

    • コンストラクターのサマリー

      コンストラクター  
      コンストラクター 説明
      RoleVoter()
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      java.lang.StringgetRolePrefix()
      voidsetRolePrefix​(java.lang.String rolePrefix)
      ROLE_ のデフォルトのロール接頭辞を上書きできるようにします。
      booleansupports​(java.lang.Class<?> clazz)
      この実装は、提示されたセキュアオブジェクトをクエリしないため、あらゆる型のクラスをサポートします。
      booleansupports​(ConfigAttribute attribute)
      この AccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。
      intvote​(Authentication authentication, java.lang.Object object, java.util.Collection<ConfigAttribute> attributes)
      アクセスが許可されているかどうかを示します。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクターの詳細

      • RoleVoter

        public RoleVoter()
    • メソッドの詳細

      • getRolePrefix

        public java.lang.String getRolePrefix()
      • setRolePrefix

        public void setRolePrefix​(java.lang.String rolePrefix)
        ROLE_ のデフォルトのロール接頭辞を上書きできるようにします。これは通常は望ましくありませんが、空の値に設定できます。
        パラメーター:
        rolePrefix - 新しい接頭辞
      • supports

        public boolean supports​(ConfigAttribute attribute)
        インターフェースからコピーされた説明: AccessDecisionVoter
        この AccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。

        これにより、AbstractSecurityInterceptor は、構成された AccessDecisionManager および / または RunAsManager および / または AfterInvocationManager が消費できるすべての構成属性をチェックできます。

        次で指定:
        インターフェース AccessDecisionVoter<java.lang.Object>supports 
        パラメーター:
        attribute - AbstractSecurityInterceptor に対して構成された構成属性
        戻り値:
        この AccessDecisionVoter が渡された構成属性をサポートできる場合は true
      • supports

        public boolean supports​(java.lang.Class<?> clazz)
        この実装は、提示されたセキュアオブジェクトをクエリしないため、あらゆる型のクラスをサポートします。
        次で指定:
        インターフェース AccessDecisionVoter<java.lang.Object>supports 
        パラメーター:
        clazz - 安全なオブジェクト
        戻り値:
        常に true
      • vote

        public int vote​(Authentication authentication,
                        java.lang.Object object,
                        java.util.Collection<ConfigAttribute> attributes)
        インターフェースからコピーされた説明: AccessDecisionVoter
        アクセスが許可されているかどうかを示します。

        決定は肯定的(ACCESS_GRANTED)、否定的(ACCESS_DENIED)でなければなりません。そうでない場合、AccessDecisionVoter は投票を棄権(ACCESS_ABSTAIN)できます。どのような状況でも、実装クラスは他の値を返しません。結果の重み付けが必要な場合は、代わりにカスタム AccessDecisionManager で処理する必要があります。

        AccessDecisionVoter は、渡されたメソッド呼び出しまたは構成属性パラメーターが原因でアクセス制御の決定に投票することを特に意図していない限り、ACCESS_ABSTAIN を返す必要があります。これにより、調整する AccessDecisionManager が、アクセス制御の決定に正当な関心を持たずに、それらの AccessDecisionVoter からの投票をカウントすることを防ぎます。

        セキュリティで保護されたオブジェクト(MethodInvocation など)がパラメーターとして渡され、アクセス制御の決定を行う際の柔軟性を最大化しますが、実装クラスはそれを変更したり、(たとえば、MethodInvocation.proceed() を呼び出して)呼び出されたりしないようにする必要があります。

        次で指定:
        インターフェース AccessDecisionVoter<java.lang.Object>vote 
        パラメーター:
        authentication - 呼び出しを行う呼び出し元
        object - 呼び出されている保護されたオブジェクト
        attributes - 保護されたオブジェクトに関連付けられた構成属性
        戻り値:
        AccessDecisionVoter.ACCESS_GRANTEDAccessDecisionVoter.ACCESS_ABSTAIN または AccessDecisionVoter.ACCESS_DENIED のいずれか