クラス AnnotationParameterNameDiscoverer
java.lang.ObjectSE
org.springframework.security.core.parameters.AnnotationParameterNameDiscoverer
- 実装されたすべてのインターフェース:
org.springframework.core.ParameterNameDiscoverer
public class AnnotationParameterNameDiscoverer
extends ObjectSE
implements org.springframework.core.ParameterNameDiscoverer
任意の数の
Annotation
SE インスタンスの値属性を使用してパラメーター名を検索できます。これは、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
- 関連事項:
コンストラクターのサマリー
コンストラクターコンストラクター説明AnnotationParameterNameDiscoverer
(StringSE... annotationClassToUse) AnnotationParameterNameDiscoverer
(SetSE<StringSE> annotationClassesToUse) メソッドのサマリー
修飾子と型メソッド説明StringSE[]
getParameterNames
(ConstructorSE<?> constructor) StringSE[]
getParameterNames
(MethodSE method)
コンストラクターの詳細
AnnotationParameterNameDiscoverer
AnnotationParameterNameDiscoverer
メソッドの詳細
getParameterNames
- 次で指定:
- インターフェース
org.springframework.core.ParameterNameDiscoverer
のgetParameterNames
getParameterNames
- 次で指定:
- インターフェース
org.springframework.core.ParameterNameDiscoverer
のgetParameterNames