クラス PreInvocationAuthorizationAdviceVoter

  • 実装されたすべてのインターフェース:
    AccessDecisionVoter<org.aopalliance.intercept.MethodInvocation>

    public class PreInvocationAuthorizationAdviceVoter
    extends java.lang.Object
    implements AccessDecisionVoter<org.aopalliance.intercept.MethodInvocation>
    @PreFilter および @PreAuthorize アノテーションから生成された PreInvocationAuthorizationAdvice 実装を使用してアクションを実行する投票者。

    実際には、これらのアノテーションが使用されている場合、それらには通常、必要なすべてのアクセス制御ロジックが含まれるため、投票者ベースのシステムは実際には必要なく、同じロジックを含む単一の AccessDecisionManager で十分です。ただし、このクラスは、Spring Security で使用される従来の投票者ベースの AccessDecisionManager 実装に容易に適合します。

    導入:
    3.0
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   具象メソッド  
      修飾子と型 メソッド 説明
      booleansupports​(java.lang.Class<?> clazz)
      AccessDecisionVoter 実装が、示された保護されたオブジェクト型のアクセス制御票を提供できるかどうかを示します。
      booleansupports​(ConfigAttribute attribute)
      この AccessDecisionVoter が、渡された ConfigAttribute に投票できるかどうかを示します。
      intvote​(Authentication authentication, org.aopalliance.intercept.MethodInvocation method, java.util.Collection<ConfigAttribute> attributes)
      アクセスが許可されているかどうかを示します。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • フィールドの詳細

      • logger

        protected final org.apache.commons.logging.Log logger
    • メソッドの詳細

      • supports

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

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

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

        public boolean supports​(java.lang.Class<?> clazz)
        インターフェースからコピーされた説明: AccessDecisionVoter
        AccessDecisionVoter 実装が、示された保護されたオブジェクト型のアクセス制御票を提供できるかどうかを示します。
        次で指定:
        インターフェース AccessDecisionVoter<org.aopalliance.intercept.MethodInvocation>supports 
        パラメーター:
        clazz - 照会されているクラス
        戻り値:
        実装が指定されたクラスを処理できる場合は true
      • vote

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

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

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

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

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