のsupports(Class clazz)
メソッドではRoleVoter
、常にtrueを返します。
この実装は、提示されたセキュアオブジェクトをクエリしないため、あらゆるタイプのクラスをサポートします。
この「提示された安全なオブジェクト」とは何ですか。一方、のsupports(Class clazz)
メソッドは、がのサブタイプであるWebExpressionVoter
場合にのみtrueを返します。ここに「提示された安全なオブジェクト」があり、なぜ有権者はそれをサポートしなければならないのですか?clazz
FilterInvocation
FilterInvocation
メソッドにアノテーションを使用し、投票者の1人として@Secured
グローバルメソッドセキュリティ用のアクセス決定マネージャーを構成するとWebExpressionVoter
、エラーが発生します
AccessDecisionManagerは、セキュアオブジェクトクラスをサポートしていません:interface org.aopalliance.intercept.MethodInvocation
これは、アクセス決定マネージャーのすべての投票者(メソッドセキュリティ用に構成されている場合)が上記のクラスをサポートする必要RoleVoter
があり、他の投票者はサポートする一方でWebExpressionVoter
、のサブタイプが必要なためですFilterInvocation
。
SPEL
@PreAuthorize
タグ内の式にもが必要WebExpressionVoter
であり、クラスをサポートする必要がありますが、そうMethodInvocation
ではありません。しかし、それは機能します。それで、私はここで何が間違っているのですか?