您好,登錄后才能下訂單哦!
本篇內容主要講解“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”吧!
oauth3整合JWT完成后,發現獲取當前認證用戶信息(Principal)時只獲取到用戶名稱,沒有其他的信息
看了一下oauth3源碼,通過分析oauth3加載TokenStore找到解決方案。
oauth3會在DefaultUserAuthenticationConverter下提取認證用戶,并給Principal進行賦值
因為userDetailsService沒有被注入進去,所以獲取的Principal的值只有“admin”。問題是什么時候注入userDetailsService
userDetailsService是當前類的屬性,這就好辦了。
接著看這個類DefaultAccessTokenConverter,這個類定義了DefaultUserAuthenticationConverter,并調用了DefaultUserAuthenticationConverter.extractAuthentication的方法
看到這里我們發現,找到這個類DefaultAccessTokenConverter的注入就可以了。
接下來是這個類JwtAccessTokenConverter,這里定義了DefaultAccessTokenConverter,調用了DefaultAccessTokenConverter.extractAuthentication的方法,是不是感覺和上一個套路一樣。
JwtTokenStore大家應該很熟悉,就是定義了JwtAccessTokenConverter,并調用JwtAccessTokenConverter.extractAuthentication但是沒有具體實現,可以通過構造方法進行注入。
看到這里就找到了userDetailsService應該怎么注入進去了。另外,大家也可以關注一下這個類的另一個方法
其實是這個方法調用的上個方法,這個方法被調用在在DefaultTokenServices這個類里
打開這個類DefaultTokenServices看看,你就會發現這個類定義了token的一些基本功能
最后看一下效果
到此,相信大家對“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。