本篇內(nèi)容主要講解“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”吧!
創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的洛寧網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
oauth3整合JWT完成后,發(fā)現(xiàn)獲取當(dāng)前認(rèn)證用戶信息(Principal)時只獲取到用戶名稱,沒有其他的信息
看了一下oauth3源碼,通過分析oauth3加載TokenStore找到解決方案。
oauth3會在DefaultUserAuthenticationConverter下提取認(rèn)證用戶,并給Principal進行賦值
因為userDetailsService沒有被注入進去,所以獲取的Principal的值只有“admin”。問題是什么時候注入userDetailsService
userDetailsService是當(dāng)前類的屬性,這就好辦了。
接著看這個類DefaultAccessTokenConverter,這個類定義了DefaultUserAuthenticationConverter,并調(diào)用了DefaultUserAuthenticationConverter.extractAuthentication的方法
看到這里我們發(fā)現(xiàn),找到這個類DefaultAccessTokenConverter的注入就可以了。
接下來是這個類JwtAccessTokenConverter,這里定義了DefaultAccessTokenConverter,調(diào)用了DefaultAccessTokenConverter.extractAuthentication的方法,是不是感覺和上一個套路一樣。
JwtTokenStore大家應(yīng)該很熟悉,就是定義了JwtAccessTokenConverter,并調(diào)用JwtAccessTokenConverter.extractAuthentication但是沒有具體實現(xiàn),可以通過構(gòu)造方法進行注入。
看到這里就找到了userDetailsService應(yīng)該怎么注入進去了。另外,大家也可以關(guān)注一下這個類的另一個方法
其實是這個方法調(diào)用的上個方法,這個方法被調(diào)用在在DefaultTokenServices這個類里
打開這個類DefaultTokenServices看看,你就會發(fā)現(xiàn)這個類定義了token的一些基本功能
最后看一下效果
到此,相信大家對“spring cloud oauth3整合JWT后獲取用戶信息不全怎么辦”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!