我正在使用SpringBoot 2.0.5和SpringSecurityOAuth来实现OAuth2.0服务器和一组客户端微服务。
在AuthServer中:
-
UserDetailsService
因此,我可以提供我的客户服务。
-
对于
userInfoUri
控制器端点,我返回用户(我的主体)和权限作为映射。
在客户端:
-
我已经实施了
PrincipalExtractor
-
对于我需要主体的每个方法,我使用以下符号:
public List<Message> listMessages(@AuthenticationPrincipal MyPrincipal user)
这是可行的(我希望这是正确的方法),但现在我遇到了一个问题,即如何使用作用域保护方法。
@PreAuthorize("#oauth2.hasScope('trust')")
但这会导致访问错误,因为我认为范围没有被转移。我已将范围添加到
用户信息URI
端点,但我不确定我需要在客户端做什么,所以范围被选取。