最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring?cloud?使用oauth2?問題匯總

 更新時(shí)間:2022年09月05日 09:48:47   作者:風(fēng)行傲天  
這篇文章主要介紹了spring?cloud?使用oauth2?問題匯總,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

OAth2是一個(gè)標(biāo)準(zhǔn)的授權(quán)協(xié)議。

在認(rèn)證與授權(quán)的過程中,主要包含以下3種角色。

服務(wù)提供方 Authorization Server。
資源持有者 Resource Server。
客戶端 Client。

下面重點(diǎn)介紹下spring cloud 使用oauth2問題,內(nèi)容如下所示:

1、spring boot 集成oauth2,帶了token卻訪問時(shí)各種禁止訪問,追蹤代碼過濾器發(fā)現(xiàn)變?yōu)槟涿脩魧?dǎo)致無法訪問授權(quán)資源,添加過濾器各種都沒效果,甚至添加了過濾器登錄都登錄不了了,

添加的依賴為

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--oauth2依賴-->
        <dependency>
            <groupId>org.springframework.security.oauth</groupId>
            <artifactId>spring-security-oauth2</artifactId>
            <version>2.3.3.RELEASE</version>
        </dependency>

將其直接改為spring-cloud-starter-oauth2 依賴,問題解決

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-oauth2</artifactId>
            <version>2.2.5.RELEASE</version>
        </dependency>

2、spring cloud oauth2 使用自定義 UserDetails 后,通過 

authentication.getPrincipal() instanceof OpenUserDetails 

獲取用戶信息時(shí),老是報(bào)類型匹配失敗 

(OpenUserDetails) authentication.getPrincipal() 使用這句時(shí)直接報(bào)錯(cuò)

java.lang.ClassCastException: com.kou.auth.OpenUserDetails cannot be cast to com.kou.auth.OpenUserDetails

通過classloader看,同一個(gè)類被不同的classloader加載了,導(dǎo)致無法匹配,

通過查資料等最終確定問題是  spring-boot-devtools 這個(gè)依賴引起的

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

問題分析
分析出ClassLoader不同導(dǎo)致的類型轉(zhuǎn)換異常,Spring的dev-tools為了實(shí)現(xiàn)重新裝載class自己實(shí)現(xiàn)了一個(gè)類加載器,來加載項(xiàng)目中會(huì)改變的類,方便重啟時(shí)將新改動(dòng)的內(nèi)容更新進(jìn)來,其實(shí)其中官方文檔中是有做說明的:

By default, any open project in your IDE will be loaded using the “restart” classloader, and any regular .jar file will be loaded using  the “base” classloader. If you work on a multi-module project, and not each module is imported into your IDE, you may need to customize things. To do this you can create a
 META-INF/spring-devtools.properties file. The spring-devtools.properties file can contain restart.exclude. and  restart.include. prefixed properties. The include elements are items  that should be pulled up into the “restart” classloader, and the exclude elements are items that should be pushed down into the “base”
classloader. The value of the property is a regex pattern that will be   applied to the classpath.

處理方法,將其刪掉

或者

在resources目錄下面創(chuàng)建META_INF文件夾,然后創(chuàng)建spring-devtools.properties文件,文件加上類似下面的配置:

	restart.exclude.companycommonlibs=/mycorp-common-[\w-]+.jar
    restart.include.projectcommon=/mycorp-myproj-[\w-]+.jar

到此這篇關(guān)于spring cloud 使用oauth2 問題匯總的文章就介紹到這了,更多相關(guān)spring cloud 使用oauth2內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java-URLDecoder、URLEncoder使用及說明

    Java-URLDecoder、URLEncoder使用及說明

    本文介紹了Java中URLDecoder和URLEncoder類的使用方法,包括編碼和解碼規(guī)則、推薦的編碼方案、解碼器處理非法字符的方法以及URL編碼和解碼的示例
    2024-12-12
  • Java設(shè)計(jì)模式:組合模式

    Java設(shè)計(jì)模式:組合模式

    這篇文章主要介紹了快速理解Java設(shè)計(jì)模式中的組合模式,具有一定參考價(jià)值,需要的朋友可以了解下,希望能夠給你帶來幫助
    2021-09-09
  • Java多線程之readwritelock讀寫分離的實(shí)現(xiàn)代碼

    Java多線程之readwritelock讀寫分離的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java多線程之readwritelock讀寫分離的相關(guān)內(nèi)容,文中涉及具體實(shí)例代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Java進(jìn)階必備之多線程編程

    Java進(jìn)階必備之多線程編程

    今天帶大家來學(xué)習(xí)java多線程編程,文中有非常詳細(xì)的代碼示例及介紹,對(duì)正在學(xué)習(xí)java多線程的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • java實(shí)習(xí)--每天打卡十道面試題!

    java實(shí)習(xí)--每天打卡十道面試題!

    臨近秋招,備戰(zhàn)暑期實(shí)習(xí),祝大家每天進(jìn)步億點(diǎn)點(diǎn)!本篇文章準(zhǔn)備了十道java的常用面試題,希望能夠給大家提供幫助,最后祝大家面試成功,進(jìn)入自己心儀的大廠
    2021-06-06
  • Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法

    Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法

    這篇文章主要介紹了Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Java搭建RabbitMq消息中間件過程詳解

    Java搭建RabbitMq消息中間件過程詳解

    這篇文章主要介紹了Java搭建RabbitMq消息中間件過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Java9中對(duì)集合類擴(kuò)展的of方法解析

    Java9中對(duì)集合類擴(kuò)展的of方法解析

    這篇文章主要介紹了Java9 中對(duì)集合類擴(kuò)展的of方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 舉例講解Java中synchronized關(guān)鍵字的用法

    舉例講解Java中synchronized關(guān)鍵字的用法

    這篇文章主要介紹了Java中synchronized關(guān)鍵字的用法,針對(duì)synchronized修飾方法的使用作出了簡(jiǎn)單講解和演示,需要的朋友可以參考下
    2016-04-04
  • Java調(diào)用Shell命令的方法

    Java調(diào)用Shell命令的方法

    這篇文章主要介紹了Java調(diào)用Shell命令的方法,實(shí)例分析了java調(diào)用shell命令的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07

最新評(píng)論

黄大仙区| 四川省| 广东省| 仙居县| 海口市| 沁水县| 尉氏县| 龙山县| 禄丰县| 聂荣县| 沙田区| 平遥县| 陇川县| 漳平市| 浏阳市| 东源县| 冕宁县| 曲松县| 南华县| 博爱县| 耒阳市| 鹿泉市| 芦山县| 自贡市| 运城市| 景宁| 香港 | 乐山市| 衡东县| 清水河县| 万盛区| 安泽县| 英吉沙县| 于田县| 安宁市| 濮阳县| 西安市| 绥化市| 堆龙德庆县| 华安县| 当阳市|