通过依赖注入检索SecurityContext对象

时间:2017-05-21 22:57:42

标签: spring-boot spring-security

我正在使用Spring Security来保护我的REST Apis。

我能够在RestController中检索注入的Principal对象:

    public MainWindow()
    {
        //ctor
        InitializeComponent();
        pathToLauncher = string.Empty;
        videos = new ObservableCollection<Video>();
        VideoUIElment.ItemsSource = videos;
    }

但不幸的是,Principal对象没有 getAuthorities()方法,我需要读出用户的角色。

这就是我使用静态方法获取所需信息的原因:

@GetMapping("/user")
public ResponseEntity<User> getUser(Principal user) {
user.getName();

通过依赖注入获取当前的 SecurityContext 对象是否有任何简单的解决方案?

1 个答案:

答案 0 :(得分:0)

请尝试以下方式:

@RequestMapping("/authentication")
Authentication getAuthentication(Authentication authentication) {
    return authentication;
}

ServletRequestMethodArgumentResolver支持,AuthenticationPrincipal

的子类
  if (Principal.class.isAssignableFrom(paramType)) {
      return request.getUserPrincipal();
  }