クラス RoleVoter

java.lang.ObjectSE
org.springframework.security.access.vote.RoleVoter
実装されたすべてのインターフェース:
AccessDecisionVoter<ObjectSE>
既知の直属サブクラス
RoleHierarchyVoter

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

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

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

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

  • フィールドサマリー

    インターフェース org.springframework.security.access.AccessDecisionVoter から継承されたフィールド

    ACCESS_ABSTAIN, ACCESS_DENIED, ACCESS_GRANTED
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
    使用すべきではありません。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    使用すべきではありません。
    void
    使用すべきではありません。
    ROLE_ のデフォルトのロール接頭辞を上書きできるようにします。
    boolean
    supports(ClassSE<?> clazz)
    使用すべきではありません。
    この実装は、提示されたセキュアオブジェクトをクエリしないため、あらゆる型のクラスをサポートします。
    boolean
    使用すべきではありません。
    この AccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。
    int
    vote(Authentication authentication, ObjectSE object, CollectionSE<ConfigAttribute> attributes)
    使用すべきではありません。
    アクセスが許可されているかどうかを示します。

    クラス java.lang.ObjectSE から継承されたメソッド

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

    • RoleVoter

      public RoleVoter()
      使用すべきではありません。
  • メソッドの詳細

    • getRolePrefix

      public StringSE getRolePrefix()
      使用すべきではありません。
    • setRolePrefix

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

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

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

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

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

      public int vote(Authentication authentication, ObjectSE object, CollectionSE<ConfigAttribute> attributes)
      使用すべきではありません。
      インターフェースからコピーされた説明: AccessDecisionVoter
      アクセスが許可されているかどうかを示します。

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

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

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

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