クラス CurrentSecurityContextArgumentResolver
java.lang.ObjectSE
org.springframework.security.messaging.handler.invocation.reactive.CurrentSecurityContextArgumentResolver
- 実装されたすべてのインターフェース:
org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver
public class CurrentSecurityContextArgumentResolver
extends ObjectSE
implements org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver
CurrentSecurityContext
アノテーションを使用して Authentication.getPrincipal()
を解決できます。例: 次の Controller
:@Controller public class MyController { @MessageMapping("/im") public void im(@CurrentSecurityContext SecurityContext context) { // do something with context } }
ReactiveSecurityContextHolder
を使用して SecurityContext 引数を解決します。SecurityContext
が空の場合、null が返されます。型が一致しない場合、CurrentSecurityContext.errorOnInvalidType()
が true でない限り null が返され、その場合は ClassCastException
SE がスローされます。
または、ユーザーは以下に示すようにカスタムメタアノテーションを作成できます。
@Target({ ElementType.PARAMETER }) @Retention(RetentionPolicy.RUNTIME) @CurrentSecurityContext(expression = "authentication?.principal") public @interface CurrentUser { }
代わりにカスタムアノテーションを使用できます。例:
@Controller public class MyController { @MessageMapping("/im") public void im(@CurrentUser CustomUser customUser) { // do something with CustomUser } }
- 導入:
- 5.2
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明reactor.core.publisher.Mono<ObjectSE>
resolveArgument
(org.springframework.core.MethodParameter parameter, org.springframework.messaging.Message<?> message) void
setAdapterRegistry
(org.springframework.core.ReactiveAdapterRegistry adapterRegistry) 使用するReactiveAdapterRegistry
を設定します。void
setBeanResolver
(org.springframework.expression.BeanResolver beanResolver) 式で使用するBeanResolver
を設定しますboolean
supportsParameter
(org.springframework.core.MethodParameter parameter)
コンストラクターの詳細
CurrentSecurityContextArgumentResolver
public CurrentSecurityContextArgumentResolver()
メソッドの詳細
setBeanResolver
public void setBeanResolver(org.springframework.expression.BeanResolver beanResolver) 式で使用するBeanResolver
を設定します- パラメーター:
beanResolver
- 使用するBeanResolver
setAdapterRegistry
public void setAdapterRegistry(org.springframework.core.ReactiveAdapterRegistry adapterRegistry) 使用するReactiveAdapterRegistry
を設定します。- パラメーター:
adapterRegistry
- 使用するReactiveAdapterRegistry
null にすることはできません。デフォルトはReactiveAdapterRegistry.getSharedInstance()
です
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) - 次で指定:
- インターフェース
org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver
のsupportsParameter
resolveArgument
public reactor.core.publisher.Mono<ObjectSE> resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.messaging.Message<?> message) - 次で指定:
- インターフェース
org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver
のresolveArgument