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