クラス RoleVoter
- java.lang.Object
-
- org.springframework.security.access.vote.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で提供されるように、読み取るときにロールプレフィックスをプレフィックスとして付ける機能はありません。すべての比較と接頭辞は大文字と小文字が区別されます。
フィールドのサマリー
インターフェース org.springframework.security.access.AccessDecisionVoter から継承されたフィールド
ACCESS_ABSTAIN, ACCESS_DENIED, ACCESS_GRANTED
コンストラクターの概要
コンストラクター コンストラクター 説明 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)アクセスが許可されているかどうかを示します。
メソッドの詳細
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_GRANTED、AccessDecisionVoter.ACCESS_ABSTAINまたはAccessDecisionVoter.ACCESS_DENIEDのいずれか