クラス AuthenticationPrincipalArgumentResolver
java.lang.ObjectSE
org.springframework.security.messaging.context.AuthenticationPrincipalArgumentResolver
- 実装されているすべてのインターフェース:
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver
public final class AuthenticationPrincipalArgumentResolver
extends ObjectSE
implements org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver
AuthenticationPrincipal アノテーションを使用して Authentication.getPrincipal() を解決できます。例: 次の Controller:
@Controller
public class MyController {
@MessageMapping("/im")
public void im(@AuthenticationPrincipal CustomUser customUser) {
// do something with CustomUser
}
}
SecurityContextHolder から Authentication.getPrincipal() を使用して CustomUser 引数を解決します。Authentication または Authentication.getPrincipal() が null の場合、null が返されます。型が一致しない場合、AuthenticationPrincipal.errorOnInvalidType() が true でない限り null が返されます。true の場合は ClassCastExceptionSE がスローされます。
または、ユーザーは以下に示すようにカスタムメタアノテーションを作成できます。
@Target({ ElementType.PARAMETER })
@Retention(RetentionPolicy.RUNTIME)
@AuthenticationPrincipal
public @interface CurrentUser {
}
代わりにカスタムアノテーションを使用できます。例:
@Controller
public class MyController {
@MessageMapping("/im")
public void im(@CurrentUser CustomUser customUser) {
// do something with CustomUser
}
}
- 導入:
- 4.0
コンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.messaging.Message<?> message) voidsetSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。booleansupportsParameter(org.springframework.core.MethodParameter parameter)
コンストラクターの詳細
AuthenticationPrincipalArgumentResolver
public AuthenticationPrincipalArgumentResolver()
メソッドの詳細
supportsParameter
public boolean supportsParameter(org.springframework.core.MethodParameter parameter) - 次で指定:
- インターフェース
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverのsupportsParameter
resolveArgument
public ObjectSE resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.messaging.Message<?> message) - 次で指定:
- インターフェース
org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolverのresolveArgument
setSecurityContextHolderStrategy
public void setSecurityContextHolderStrategy(SecurityContextHolderStrategy securityContextHolderStrategy) 使用するSecurityContextHolderStrategyを設定します。デフォルトのアクションは、SecurityContextHolderに格納されているSecurityContextHolderStrategyを使用することです。- 導入:
- 5.8