獲取在春季啓動資源服務器主要我有一個單獨的auth服務器和資源服務器 - 無論是春啓動的應用程序。我正在使用OAuth2和JWT令牌進行身份驗證和授權。從JWT令牌
我可以通過訪問auth服務器獲取令牌:
curl -X POST --user 'client:secret' -d 'grant_type=password&username=john&password=123' http://localhost:9000/auth-server/oauth/token
和令牌附加到請求頭從資源服務器獲取資源(不同的服務器上運行)時使用它。
但是我不清楚的是,確定哪個用戶在資源服務器上登錄。
在auth服務器,我可以做這樣的事情:
@RequestMapping("/user")
public Principal user(Principal user) {
return user;
}
與此端點將得到我的當前用戶基於使用的令牌。如果我試圖在資源服務器上做同樣的事情,我只會得到空的答覆。
我需要得到驗證用戶的ID以某種方式在資源服務器,以決定是否我應該有的數據返回給他(我有一些資源只能被其所有者訪問)。
我該怎麼做?我認爲通過使用JWT,我不需要共享相同的令牌存儲。
我可以提供代碼樣本,如果我的問題是不清楚..我只是尋找一個確認我的假設是正確的,就可以實現這種行爲 - 這是我第一次帶彈簧的安全試驗。
資源服務器鏈接到auth服務器在application.properties:
security.oauth2.resource.userInfoUri: http://localhost:9000/auth-server/user
沒有你,不管怎樣,這得到解決?我通過使用InMemoryTokenStore()而不是JwtTokenStore()來得到這個工作。不過,我想用JwtTokenStore()來達到同樣的效果。 – Yasin
不幸的是沒有。我現在使用的方式是在auth服務器和資源服務器中共享相同的用戶名,並使用在Principal對象中傳遞的唯一用戶名來檢索用戶... – Smajl