2015-05-15 88 views
0

我知道security Oauth2會發送Access_tokenClient App,這樣Client APP可以使用這些access_token去獲得服務。
我的問題是:service如何知道Client發送的access_token是對的?
在下面的PIC,好像security Oauth2service使用DB/MEMORY溝通
security Oauth2這裏保存ACCESS_TOKEN告訴service哪一個是正確的?
我在哪裏可以找到這些部分的代碼?
謝謝。access_token在哪裏保存?

enter image description here

回答

0

從客戶端應用程序中,最有可能的,你要使用RestTemplate與資源服務器進行通信。要利用Spring的oauth功能,您的休息模板必須擴展Spring的OAuth Oauth2RestTemplate。這個RestTemplate實現的一個領域是Oauth2ClientContext。這是Spring存儲access_token的地方。

當RestClient調用資源端點時,將創建一個包含OAuth訪問令牌的請求對象。

入住此方法進行:OAuth2RestTemplate.createRequest(URI uri, HttpMethod method)

+0

原諒我,所以你的意思是我們的access_token保存在客戶端應用程序? – user2492364

+0

實際上存在兩個令牌:'access_token'和'refresh_token'。訪問令牌的生存時間(分鐘/小時)比刷新令牌(月/年)短得多。客戶端應用程序將使用訪問令牌向oauth提供者進行身份驗證。如果該訪問令牌已過期,它將使用刷新令牌來獲取新的訪問令牌並使用新令牌訪問服務器。 所以是的,兩者都被保留在客戶端應用程序中。 – nucatus

+0

有關更多信息,可以查看oauth規範:訪問令牌https://tools.ietf.org/html/rfc6749#section-1.4和https://tools.ietf.org/html/rfc6749#section-1.5刷新令牌。 – nucatus