クラス AnnotationParameterNameDiscoverer
- java.lang.Object
-
- org.springframework.security.core.parameters.AnnotationParameterNameDiscoverer
- 実装されたすべてのインターフェース:
org.springframework.core.ParameterNameDiscoverer
public class AnnotationParameterNameDiscoverer extends java.lang.Object implements org.springframework.core.ParameterNameDiscoverer
任意の数のAnnotation
インスタンスの value 属性を使用してパラメーター名を検索できます。これは、Spring Security のメソッドレベルのセキュリティを備えたインターフェースのパラメーター名を検出する必要がある場合に役立ちます。例: 次のことを考慮してください。import org.springframework.security.access.method.P;
次の@PostAuthorize("#to == returnObject.to")
public Message findMessageByTo(@P("to") String to);AnnotationParameterNameDiscoverer
を使用してこれを可能にすることができます。ParameterAnnotationsNameDiscoverer discoverer = new ParameterAnnotationsNameDiscoverer( "org.springframework.security.access.method.P");
ユーザーは
AnnotationParameterNameDiscoverer
をPrioritizedParameterNameDiscoverer
と組み合わせて使用するのが一般的です。実際、Spring Security のDefaultSecurityParameterNameDiscoverer
(メソッドレベルのセキュリティでデフォルトで使用されます)はPrioritizedParameterNameDiscoverer
を継承し、クラスパスで見つかった場合、P
と Spring Data の Param アノテーションの両方を自動的にサポートします。単一のパラメーター名にサポートされているアノテーションがある場合、すべてのメソッドは
AnnotationParameterNameDiscoverer
を使用して解決されることに注意することが重要です。例: 次のことを考慮してください。import org.springframework.security.access.method.P;
@PostAuthorize("#to == returnObject.to")
public Message findMessageByToAndFrom(@P("to") User to, User from);アノテーションが含まれているパラメーターは 1 つだけなので、前のサンプルでパラメーターを見つけた結果は
new String[] { "to", null}
になります。これは主に、PrioritizedParameterNameDiscoverer
のフォールバックがオールオアナッシング操作であるという事実によるものです。- 導入:
- 3.2
- 関連事項:
DefaultSecurityParameterNameDiscoverer
コンストラクターのサマリー
コンストラクター コンストラクター 説明 AnnotationParameterNameDiscoverer(java.lang.String... annotationClassToUse)
AnnotationParameterNameDiscoverer(java.util.Set<java.lang.String> annotationClassesToUse)
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 java.lang.String[]
getParameterNames(java.lang.reflect.Constructor<?> constructor)
java.lang.String[]
getParameterNames(java.lang.reflect.Method method)
メソッドの詳細
getParameterNames
public java.lang.String[] getParameterNames(java.lang.reflect.Method method)
- 次で指定:
- インターフェース
org.springframework.core.ParameterNameDiscoverer
のgetParameterNames
getParameterNames
public java.lang.String[] getParameterNames(java.lang.reflect.Constructor<?> constructor)
- 次で指定:
- インターフェース
org.springframework.core.ParameterNameDiscoverer
のgetParameterNames