クラス CurrentSecurityContextArgumentResolver

  • 実装されたすべてのインターフェース:
    org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolver

    public class CurrentSecurityContextArgumentResolver
    extends java.lang.Object
    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 が返されます。true の場合、ClassCastException がスローされます。

    または、ユーザーは以下に示すようにカスタムメタアノテーションを作成できます。

     @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<java.lang.Object>resolveArgument​(org.springframework.core.MethodParameter parameter, org.springframework.messaging.Message<?> message)
      voidsetAdapterRegistry​(org.springframework.core.ReactiveAdapterRegistry adapterRegistry)
      使用する ReactiveAdapterRegistry を設定します。
      voidsetBeanResolver​(org.springframework.expression.BeanResolver beanResolver)
      式で使用する BeanResolver を設定します
      booleansupportsParameter​(org.springframework.core.MethodParameter parameter)
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • コンストラクターの詳細

      • 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.HandlerMethodArgumentResolversupportsParameter 
      • resolveArgument

        public reactor.core.publisher.Mono<java.lang.Object> resolveArgument​(org.springframework.core.MethodParameter parameter,
                                                                             org.springframework.messaging.Message<?> message)
        次で指定:
        インターフェース org.springframework.messaging.handler.invocation.reactive.HandlerMethodArgumentResolverresolveArgument