自定义Spring Security OAuth 2响应

Ant*_*gos 7 java spring oauth-2.0 spring-security-oauth2

在我的Java应用程序中,我正在使用Spring Security OAuth 2库来实现OAuth提供程序。对于成功的身份验证(对于authorization_code授予类型)的响应类似于:

{"access_token": "d179bf70-aa40-4df9-a3e1-440e835c273a", 
"expires_in": "43199", 
"refresh_token": "879e7bd0-5e0f-48a9-b64d-f61d5665bf4e", 
"scope": "read", 
"token_type": "bearer"}
Run Code Online (Sandbox Code Playgroud)

有没有办法为此响应添加其他属性,例如用户名或电子邮件地址?

Dav*_*yer 6

Spring OAuth2 允许您OAuth2AccessToken通过其additionalInfo属性在 中放置任意值。您可以根据需要注入AccessTokenConverter(反过来可以DefaultTokenServices通过配置回调轻松添加到)。不过,我不太确定您为什么需要它,在发送额外的值供客户使用之前,我会仔细考虑您的用例(他们应该只使用不透明的令牌值)。

  • 这个用例可以在身份验证后提供超媒体 API 的入口点,而不是向发现服务花费额外的请求,所以这个任务很有意义。 (2认同)