クラス AuthorizationAdvisorProxyFactory
java.lang.ObjectSE
org.springframework.security.authorization.method.AuthorizationAdvisorProxyFactory
- 実装されたすべてのインターフェース:
IterableSE<AuthorizationAdvisor>
,AuthorizationProxyFactory
public final class AuthorizationAdvisorProxyFactory
extends ObjectSE
implements AuthorizationProxyFactory, IterableSE<AuthorizationAdvisor>
任意のオブジェクトに認可アドバイスを適用するためのプロキシファクトリ。
例: Spring で管理されていないオブジェクト Foo
を考えてみましょう。
class Foo { @PreAuthorize("hasAuthority('bar:read')") String bar() { ... } }次のように、
AuthorizationAdvisorProxyFactory
を使用して、インスタンスを Spring Security の PreAuthorize
メソッドインターセプターにラップします。AuthorizationProxyFactory proxyFactory = AuthorizationAdvisorProxyFactory.withDefaults(); Foo foo = new Foo(); foo.bar(); // passes Foo securedFoo = proxyFactory.proxy(foo); securedFoo.bar(); // access denied!
- 導入:
- 6.3
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static interface
AuthorizationAdvisorProxyFactory
がターゲットのオブジェクト階層をどのようにステップスルーするかを処理するインターフェース。メソッドのサマリー
修飾子と型メソッド説明iterator()
認可アドバイスを実施するためにオブジェクトをプロキシします。void
setAdvisors
(CollectionSE<AuthorizationAdvisor> advisors) 作成された各プロキシに含める必要があるアドバイザーを追加します。void
setAdvisors
(AuthorizationAdvisor... advisors) 作成された各プロキシに含める必要があるアドバイザーを追加します。void
このビジターを使用して、プロキシターゲットの階層を移動します。Spring Security の事前リアクティブメソッドセキュリティサポートでオブジェクトをラップするために必要なデフォルトを使用してAuthorizationAdvisorProxyFactory
を構築します。Spring Security の事前リアクティブリアクティブメソッドセキュリティサポートでオブジェクトをラップするために必要なデフォルトを使用してAuthorizationAdvisorProxyFactory
を構築します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース java.lang.IterableSE から継承されたメソッド
forEachSE, spliterator
メソッドの詳細
withDefaults
Spring Security の事前リアクティブメソッドセキュリティサポートでオブジェクトをラップするために必要なデフォルトを使用してAuthorizationAdvisorProxyFactory
を構築します。- 戻り値:
- 事前リアクティブメソッドセキュリティサポートを追加するための
AuthorizationAdvisorProxyFactory
withReactiveDefaults
Spring Security の事前リアクティブリアクティブメソッドセキュリティサポートでオブジェクトをラップするために必要なデフォルトを使用してAuthorizationAdvisorProxyFactory
を構築します。- 戻り値:
- 事前リアクティブリアクティブメソッドセキュリティサポートを追加するための
AuthorizationAdvisorProxyFactory
proxy
認可アドバイスを実施するためにオブジェクトをプロキシします。非最終クラスまたは複数のインターフェースを実装するクラスのインスタンスをプロキシします。
target
がIterator
SE、Collection
SE、Array
SE、Map
SE、Stream
SE、またはOptional
SE の場合、要素または値の型はプロキシされます。target
がClass
SE の場合、代わりにProxyFactory.getProxyClass(java.lang.ClassLoader)
が呼び出されます。- 次で指定:
- インターフェース
AuthorizationProxyFactory
のproxy
- パラメーター:
target
- プロキシするインスタンス- 戻り値:
- プロキシインスタンス
setAdvisors
作成された各プロキシに含める必要があるアドバイザーを追加します。すべてのアドバイザーはアドバイザーの順序で再ソートされます。
- パラメーター:
advisors
- アドバイザーを追加する
setAdvisors
作成された各プロキシに含める必要があるアドバイザーを追加します。すべてのアドバイザーはアドバイザーの順序で再ソートされます。
- パラメーター:
advisors
- アドバイザーを追加する
setTargetVisitor
このビジターを使用して、プロキシターゲットの階層を移動します。これは、型または型のセットに対して特殊な動作が必要な場合に役立ちます。例: このファクトリでプリミティブとラッパーをスキップする場合は、次のようにします。
AuthorizationAdvisorProxyFactory proxyFactory = new AuthorizationAdvisorProxyFactory(); proxyFactory.setTargetVisitor(TargetVisitor.defaultsSkipValueTypes());
デフォルトの
AuthorizationAdvisorProxyFactory.TargetVisitor
は、Class
SE インスタンスだけでなく、リアクティブ型 (リアクターが存在する場合)、コレクション型、Optional
SE やSupplier
SE などの他のコンテナー型に含まれるインスタンスもプロキシします。別のコンテナー型のサポートを追加する場合は、次の方法で実行できます。
TargetVisitor functions = (factory, target) -> { if (target instanceof Function function) { return (input) -> factory.proxy(function.apply(input)); } return null; }; AuthorizationAdvisorProxyFactory proxyFactory = new AuthorizationAdvisorProxyFactory(); proxyFactory.setTargetVisitor(TargetVisitor.of(functions, TargetVisitor.defaultsSkipValueTypes()));
- パラメーター:
visitor
- 特定の型の特別な動作を導入するために使用するビジター- 関連事項:
iterator
- 次で指定:
- インターフェース
IterableSE<AuthorizationAdvisor>
のiterator