public class AuthenticatedVoter extends java.lang.Object implements AccessDecisionVoter<java.lang.Object>
IS_AUTHENTICATED_FULLY または IS_AUTHENTICATED_REMEMBERED または IS_AUTHENTICATED_ANONYMOUSLY の ConfigAttribute.getAttribute() が存在する場合に投票します。このリストは、最も厳密なチェックから最も厳密でないチェックの順になっています。 現在の Authentication がインスペクションされ、プリンシパルが特定のレベルの認証を持っているかどうかが判別されます。「完全に」認証されたオプションは、ユーザーが完全に認証されていることを意味します(つまり、AuthenticationTrustResolver.isAnonymous(Authentication) は false で、AuthenticationTrustResolver.isRememberMe(Authentication) は false です)。"REMEMBERED" は、プリンシパルが remember-me によって認証されているか、完全に認証されている場合にアクセスを許可します。"ANONYMOUSLY" は、プリンシパルが remember-me を介して、または匿名で、または完全な認証を介して認証された場合にアクセスを許可します。
すべての比較と接頭辞は大文字と小文字が区別されます。
| 修飾子と型 | フィールドと説明 |
|---|---|
static java.lang.String | IS_AUTHENTICATED_ANONYMOUSLY |
static java.lang.String | IS_AUTHENTICATED_FULLY |
static java.lang.String | IS_AUTHENTICATED_REMEMBERED |
ACCESS_ABSTAIN, ACCESS_DENIED, ACCESS_GRANTED| コンストラクターと説明 |
|---|
AuthenticatedVoter() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | setAuthenticationTrustResolver(AuthenticationTrustResolver authenticationTrustResolver) |
boolean | supports(java.lang.Class<?> clazz) この実装は、提示されたセキュアオブジェクトをクエリしないため、あらゆる型のクラスをサポートします。 |
boolean | supports(ConfigAttribute attribute) この AccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。 |
int | vote(Authentication authentication, java.lang.Object object, java.util.Collection<ConfigAttribute> attributes) アクセスが許可されているかどうかを示します。 |
public static final java.lang.String IS_AUTHENTICATED_FULLY
public static final java.lang.String IS_AUTHENTICATED_REMEMBERED
public static final java.lang.String IS_AUTHENTICATED_ANONYMOUSLY
public void setAuthenticationTrustResolver(AuthenticationTrustResolver authenticationTrustResolver)
public boolean supports(ConfigAttribute attribute)
AccessDecisionVoterAccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。 これにより、AbstractSecurityInterceptor は、構成された AccessDecisionManager および / または RunAsManager および / または AfterInvocationManager が消費できるすべての構成属性をチェックできます。
AccessDecisionVoter<java.lang.Object> 内の supports attribute - AbstractSecurityInterceptor に対して構成された構成属性 AccessDecisionVoter が渡された構成属性をサポートできる場合は truepublic boolean supports(java.lang.Class<?> clazz)
AccessDecisionVoter<java.lang.Object> 内の supports clazz - セキュアオブジェクト型 truepublic 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 のいずれか