我在一些oauth2实现中看到了授权服务器在发出访问令牌时返回的响应的附加信息.我想知道是否有办法使用spring-security-oauth2来实现这一目标.我希望能够在访问令牌响应中包含一些用户权限,以便我的消费应用程序不需要管理用户权限,但仍然可以将用户设置在他们自己的安全上下文中并应用他们自己的任何spring-security检查.
我想另一种选择是使用JWT令牌并与客户端应用程序共享适当的信息,以便他们可以解析令牌中的用户/权限并将其设置在上下文中.这让我更加不舒服,因为我更愿意控制哪些客户端应用程序可以访问此信息(仅限受信任的应用程序),而AFAIK只有授权服务器和资源服务器应该知道如何解析JWT令牌.
我使用Spring Security Oauth2实现了JWT和LDAP身份验证.它似乎工作正常,我可以使用我的LDAP凭据登录.
现在,有一个要求我需要使用当前登录的用户信息来保存数据库中的详细信息 - 特别是当该用户添加/更新新记录时.我尝试使用Spring安全方式来实现
SecurityContextHolder.getContext().getAuthentication().getDetails()
Run Code Online (Sandbox Code Playgroud)
但它不会返回我在JWT中获得的所有信息.它只返回远程IP,JWT令牌值和经过身份验证的true.它甚至没有返回name().
我是JWT的新手,所以不确定我是否需要通过阅读该令牌来提取它,甚至我们如何实现它.
任何指针将不胜感激.
谢谢.
spring spring-security jwt spring-boot spring-security-oauth2