我正在使用"客户端凭证";我从前端服务到其他后端服务的其余调用的grant类型。客户端凭据授予类型也在其他后端服务中使用。通过这样做,我无法了解谁是请求的实际调用者(当前登录的用户(。是否有一种方法可以将主体的身份验证和授权信息注入到客户端凭据授予中颁发的令牌中?(用户信息是指拥有客户端凭据的用户的id或详细信息(。我可以通过使用自定义令牌增强器将一些自定义数据添加到令牌中。但我不知道我们如何在主体(SpringSecurityPrincipal springSecurityPrincipal = (SpringSecurityPrincipal)oAuth2Authentication.getPrincipal();
(中获得它,通常在密码流中,我们可以通过使用自定义AuthenticationProvider
实现来实现这一点。这样,有什么类可以实现并用于添加自定义主体吗?
谢谢你的帮助。
您可以根据需要创建自定义UserDetailsService
和自定义Principal
。您可以从这里挑选一些想法:使用数据库支持的UserDetailsService 进行身份验证