Class AuthenticationPrincipalArgumentResolver

java.lang.Object
org.springframework.security.web.bind.support.AuthenticationPrincipalArgumentResolver
All Implemented Interfaces:
org.springframework.web.method.support.HandlerMethodArgumentResolver

@Deprecated public final class AuthenticationPrincipalArgumentResolver extends Object implements org.springframework.web.method.support.HandlerMethodArgumentResolver
Deprecated.
Allows resolving the Authentication.getPrincipal() using the AuthenticationPrincipal annotation. For example, the following Controller:
 @Controller
 public class MyController {
     @RequestMapping("/user/current/show")
     public String show(@AuthenticationPrincipal CustomUser customUser) {
         // do something with CustomUser
         return "view";
     }
 }
 

Will resolve the CustomUser argument using Authentication.getPrincipal() from the SecurityContextHolder. If the Authentication or Authentication.getPrincipal() is null, it will return null. If the types do not match, null will be returned unless AuthenticationPrincipal.errorOnInvalidType() is true in which case a ClassCastException will be thrown.

Alternatively, users can create a custom meta annotation as shown below:

 @Target({ ElementType.PARAMETER })
 @Retention(RetentionPolicy.RUNTIME)
 @AuthenticationPrincipal
 public @interface CurrentUser {
 }
 

The custom annotation can then be used instead. For example:

 @Controller
 public class MyController {
     @RequestMapping("/user/current/show")
     public String show(@CurrentUser CustomUser customUser) {
         // do something with CustomUser
         return "view";
     }
 }
 
Since:
3.2
  • Constructor Summary

    Constructors
    Constructor
    Description
    Deprecated.
     
  • Method Summary

    Modifier and Type
    Method
    Description
    resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, org.springframework.web.bind.support.WebDataBinderFactory binderFactory)
    Deprecated.
     
    boolean
    supportsParameter(org.springframework.core.MethodParameter parameter)
    Deprecated.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • AuthenticationPrincipalArgumentResolver

      public AuthenticationPrincipalArgumentResolver()
      Deprecated.
  • Method Details

    • supportsParameter

      public boolean supportsParameter(org.springframework.core.MethodParameter parameter)
      Deprecated.
      Specified by:
      supportsParameter in interface org.springframework.web.method.support.HandlerMethodArgumentResolver
    • resolveArgument

      public Object resolveArgument(org.springframework.core.MethodParameter parameter, org.springframework.web.method.support.ModelAndViewContainer mavContainer, org.springframework.web.context.request.NativeWebRequest webRequest, org.springframework.web.bind.support.WebDataBinderFactory binderFactory)
      Deprecated.
      Specified by:
      resolveArgument in interface org.springframework.web.method.support.HandlerMethodArgumentResolver