インターフェース AccessDecisionVoter<S>
- すべての既知の実装クラス:
AbstractAclVoter
、AclEntryVoter
、AuthenticatedVoter
、Jsr250Voter
、MessageExpressionVoter
、PreInvocationAuthorizationAdviceVoter
、RoleHierarchyVoter
、RoleVoter
、WebExpressionVoter
public interface AccessDecisionVoter<S>
クラスが認可決定の投票に責任があることを示します。投票の調整(つまり、
AccessDecisionVoter
のポーリング、それらのレスポンスの集計、最終的な認可の決定)は、AccessDecisionManager
によって実行されます。
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static int
ACCESS_ABSTAIN
static int
ACCESS_DENIED
static int
ACCESS_GRANTED
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 boolean
supports(java.lang.Class<?> clazz)
AccessDecisionVoter
実装が、示された保護されたオブジェクト型のアクセス制御票を提供できるかどうかを示します。boolean
supports(ConfigAttribute attribute)
このAccessDecisionVoter
が、渡されたConfigAttribute
に投票できるかどうかを示します。int
vote(Authentication authentication, S object, java.util.Collection<ConfigAttribute> attributes)
アクセスが許可されているかどうかを示します。
メソッドの詳細
supports
boolean supports(ConfigAttribute attribute)
このAccessDecisionVoter
が、渡されたConfigAttribute
に投票できるかどうかを示します。これにより、
AbstractSecurityInterceptor
は、構成されたAccessDecisionManager
および / またはRunAsManager
および / またはAfterInvocationManager
が消費できるすべての構成属性をチェックできます。- パラメーター:
attribute
-AbstractSecurityInterceptor
に対して構成された構成属性- 戻り値:
- この
AccessDecisionVoter
が渡された構成属性をサポートできる場合は true
supports
boolean supports(java.lang.Class<?> clazz)
AccessDecisionVoter
実装が、示された保護されたオブジェクト型のアクセス制御票を提供できるかどうかを示します。- パラメーター:
clazz
- 照会されているクラス- 戻り値:
- 実装が指定されたクラスを処理できる場合は true
vote
int vote(Authentication authentication, S object, java.util.Collection<ConfigAttribute> attributes)
アクセスが許可されているかどうかを示します。決定は肯定的(
ACCESS_GRANTED
)、否定的(ACCESS_DENIED
)でなければなりません。そうでない場合、AccessDecisionVoter
は投票を棄権(ACCESS_ABSTAIN
)できます。どのような状況でも、実装クラスは他の値を返しません。結果の重み付けが必要な場合は、代わりにカスタムAccessDecisionManager
で処理する必要があります。AccessDecisionVoter
は、渡されたメソッド呼び出しまたは構成属性パラメーターが原因でアクセス制御の決定に投票することを特に意図していない限り、ACCESS_ABSTAIN
を返す必要があります。これにより、調整するAccessDecisionManager
が、アクセス制御の決定に正当な関心を持たずに、それらのAccessDecisionVoter
からの投票をカウントすることを防ぎます。セキュリティで保護されたオブジェクト(
MethodInvocation
など)がパラメーターとして渡され、アクセス制御の決定を行う際の柔軟性を最大化しますが、実装クラスはそれを変更したり、(たとえば、MethodInvocation.proceed()
を呼び出して)呼び出されたりしないようにする必要があります。- パラメーター:
authentication
- 呼び出しを行う呼び出し元object
- 呼び出されている保護されたオブジェクトattributes
- 保護されたオブジェクトに関連付けられた構成属性- 戻り値:
ACCESS_GRANTED
、ACCESS_ABSTAIN
またはACCESS_DENIED
のいずれか