2015-04-24 96 views
4

在我的Java應用程序中,我使用Spring Security OAuth 2 library來實現OAuth提供程序。一個成功的認證(用於authorization_code交付式)的反應是一樣的東西:定製Spring Security OAuth 2響應

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

有沒有辦法附加屬性添加到這種反應,例如用戶的姓名或電子郵件地址?

+0

你想通過將這些參數添加到令牌響應中來完成什麼?根據[spec](http://tools.ietf.org/html/rfc6749#section-5.1),可以添加更多值(需要檢查Spring實現是否允許)。我推薦的和它在Spring文檔中使用的是「JWT令牌」,您可以在其中添加無狀態(和已簽名)訪問令牌中所需的所有信息。如果JWT是一個選項,我可以指出你的好實現。 – jbarrueta

回答

4

Spring OAuth2允許您通過其additionalInfo屬性在OAuth2AccessToken中放置任意值。您可以在AccessTokenConverter(儘管可以通過配置回調輕鬆添加到DefaultTokenServices)中儘可能多地注入。我不太清楚爲什麼你需要它,我會在發送額外的值供客戶使用之前仔細考慮你的用例(他們應該使用不透明的令牌值)。

+0

這個用例可以在認證之後提供超媒體API的入口點,而不是花費額外的請求到發現服務,所以這個任務很有意義。 –

相關問題