代码之家  ›  专栏  ›  技术社区  ›  Swordfish

使用SpringOAuth2.0自定义主体和作用域

  •  1
  • Swordfish  · 技术社区  · 7 年前

    我正在使用SpringBoot 2.0.5和SpringSecurityOAuth来实现OAuth2.0服务器和一组客户端微服务。

    在AuthServer中:

    1. UserDetailsService 因此,我可以提供我的客户服务。
    2. 对于 userInfoUri 控制器端点,我返回用户(我的主体)和权限作为映射。

    在客户端:

    1. 我已经实施了 PrincipalExtractor
    2. 对于我需要主体的每个方法,我使用以下符号:

      public List<Message> listMessages(@AuthenticationPrincipal MyPrincipal user)

    这是可行的(我希望这是正确的方法),但现在我遇到了一个问题,即如何使用作用域保护方法。

    @PreAuthorize("#oauth2.hasScope('trust')")
    

    但这会导致访问错误,因为我认为范围没有被转移。我已将范围添加到 用户信息URI 端点,但我不确定我需要在客户端做什么,所以范围被选取。

    0 回复  |  直到 7 年前