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

SpringSecurity中的UserDetailsService深度解析

 更新時間:2025年11月12日 10:28:56   作者:爪哇小白2021  
文章介紹了Spring Security中的UserDetailsService接口,它用于自定義用戶認證邏輯,通過實現(xiàn)該接口,可以自定義用戶認證過程,文章詳細解釋了UserDetailsService接口的返回值、方法參數(shù)以及可能出現(xiàn)的異常,如UsernameNotFoundException,感興趣的朋友跟隨小編一起看看吧

關(guān)于security的權(quán)限認證可以看一下這個專欄的上一篇文章。 基礎概念和入門的demo就不再這里面進行贅述了,今天學習一個這個UserDetailsService,

1、UserDetailsService詳解

當什么也沒有配置的時候,賬號和密碼是由 Spring Security 定義生成的。而在實際項目中賬號和密碼都是從數(shù)據(jù) 庫中查詢出來的。所以我們要通過自定義邏輯控制認證邏輯。如果需要自定義邏輯時,只需要實現(xiàn) UserDetailsService 接口即可。接口定義如下:

2、返回值

直接看源碼

要想返回 UserDetails 的實例就只能返回接口的實現(xiàn)類。SpringSecurity 中提供了如下的實例。對于我們只需要使 用里面的 User 類即可。注意 User 的全限定路徑是:

org.springframework.security.core.userdetails.User

此處經(jīng)常和系統(tǒng)中自己開發(fā)的 User 類弄混。

在User中也提供了很多的方法和屬性

?。?!雖然方法屬性很多,但是我們要看經(jīng)常使用的。

其中構(gòu)造方法有兩個,調(diào)用其中任何一個都可以實例化
UserDetails 實現(xiàn)類 User 類的實例。而三個參數(shù)的構(gòu)造方法實際上也是調(diào)用 7 個參數(shù)的構(gòu)造方法。

  • username:用戶名
  • password:密碼
  • authorities:用戶具有的權(quán)限。此處不允許為null。

注意看一下:
此處的用戶名應該是客戶端傳遞過來的用戶名。而密碼應該是從數(shù)據(jù)庫中查詢出來的密碼。Spring Security 會根據(jù)User中的password
和客戶端傳遞過來的password
進行比較。如果相同則表示認證通過,如果不相同表示認證
據(jù) User 中的 失敗。

authorities 里面的權(quán)限對于后面學習授權(quán)是很有必要的,包含的所有內(nèi)容為此用戶具有的權(quán)限,如有里面沒有 包含某個權(quán)限,而在做某個事情時必須包含某個權(quán)限則會出現(xiàn) 403。通常都是通過
AuthorityUtils.commaSeparatedStringToAuthorityList(“”) 來創(chuàng)建 authorities 集合對象的。參數(shù)是一個 字符串,多個權(quán)限使用逗號分隔。

3、方法參數(shù)

方法參數(shù)表示用戶名。此值是客戶端表單傳遞過來的數(shù)據(jù)。默認情況下必須叫username,否則無法接收。

4、異常

UsernameNotFoundException 用戶名沒有發(fā)現(xiàn)異常。在 loadUserByUsername 中是需要通過自己的邏輯從數(shù)據(jù) 庫中取值的。如果通過用戶名沒有查詢到對應的數(shù)據(jù),應該拋出 UsernameNotFoundException ,系統(tǒng)就知道用戶名 沒有查詢到。

到此這篇關(guān)于SpringSecurity之UserDetailsService詳解的文章就介紹到這了,更多相關(guān)SpringSecurity UserDetailsService內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring依賴注入和控制反轉(zhuǎn)詳情

    Spring依賴注入和控制反轉(zhuǎn)詳情

    這篇文章主要介紹了Spring依賴注入和控制反轉(zhuǎn)詳情,控制反轉(zhuǎn)是面向?qū)ο缶幊讨惺褂玫男g(shù)語,通過該術(shù)語,對象或?qū)ο蠹目刂茩?quán)被賦予框架或由框架提供的容器。下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-05-05
  • 使用BufferedReader讀取TXT文件中數(shù)值,并輸出最大值

    使用BufferedReader讀取TXT文件中數(shù)值,并輸出最大值

    這篇文章主要介紹了使用BufferedReader讀取TXT文件中數(shù)值,并輸出最大值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java中Integer.equals的用法與特殊情況

    Java中Integer.equals的用法與特殊情況

    Java中Integer.equals比較數(shù)值而非對象地址,自動裝箱處理int參數(shù),-128~127范圍內(nèi)使用==安全,超出范圍或null需用Objects.equals,compareTo用于大小比較,equals僅判斷相等性,注意類型不匹配會導致false
    2025-07-07
  • Java之網(wǎng)絡編程案例講解

    Java之網(wǎng)絡編程案例講解

    這篇文章主要介紹了Java之網(wǎng)絡編程案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Springboot通用mapper和mybatis-generator代碼示例

    Springboot通用mapper和mybatis-generator代碼示例

    這篇文章主要介紹了Springboot通用mapper和mybatis-generator代碼示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-12-12
  • Java 在PPT中創(chuàng)建散點圖的實現(xiàn)示例

    Java 在PPT中創(chuàng)建散點圖的實現(xiàn)示例

    本文將以Java代碼示例展示如何在PPT幻燈片中創(chuàng)建散點圖表。文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • SpringBoot+JavaMailSender實現(xiàn)騰訊企業(yè)郵箱配置

    SpringBoot+JavaMailSender實現(xiàn)騰訊企業(yè)郵箱配置

    這篇文章主要介紹了SpringBoot+JavaMailSender實現(xiàn)騰訊企業(yè)郵箱配置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Java8 Comparator: 列表排序的深入講解

    Java8 Comparator: 列表排序的深入講解

    這篇文章主要給大家介紹了關(guān)于Java 8 Comparator: 列表排序的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java8具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)

    這篇文章主要介紹了Mybatis自動創(chuàng)建表和更新表結(jié)構(gòu)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Android中PreferenceFragment的使用詳解

    Android中PreferenceFragment的使用詳解

    本文主要介紹了Android中PreferenceFragment的使用詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評論

高清| 萍乡市| 闽侯县| 临海市| 崇义县| 闻喜县| 巴楚县| 武宣县| 高清| 曲阜市| 马公市| 会同县| 福海县| 杭州市| 古浪县| 辽宁省| 都昌县| 新宁县| 绿春县| 固镇县| 南城县| 墨竹工卡县| 马尔康县| 曲阜市| 桂平市| 民乐县| 松桃| 衡水市| 商都县| 邢台县| 横山县| 平利县| 绿春县| 宣汉县| 广宁县| 灌南县| 兴业县| 兴国县| 同心县| 周口市| 仁布县|