spring security中Authority、Role的區(qū)別及說(shuō)明
spring security中Authority、Role的區(qū)別
最近在研究spring security時(shí),大概研究了一下Authority、Role之間到底有什么本質(zhì)的區(qū)別。
如果你使用的是hasRole方法來(lái)判斷你的登錄用戶是否有權(quán)限訪問(wèn)某個(gè)接口,那么你初始化User時(shí),放入的GrantedAuthority的字符就需要包含ROLE_前綴,
參見(jiàn)下圖紅箭頭:

接口訪問(wèn)權(quán)限配置應(yīng)該是這樣:

或者是這樣:

如果你使用的是hasAuthority,那么你初始化User時(shí),放入的GrantedAuthority的字符就不需要包含ROLE_前綴了,
參見(jiàn)下圖紅箭頭:

接口訪問(wèn)權(quán)限配置應(yīng)該是這樣:

或者是這樣:

我使用的是spring security 5.1.6版本
從源碼的角度可以看出使用不同的hasAuthority、hasRole方法判斷權(quán)限時(shí)的區(qū)別,其實(shí)他們最終調(diào)用的都是hasAnyAuthorityName()方法,唯一不同的就是hasRole()在調(diào)用時(shí),傳遞了前綴defaultRolePrefix,這就導(dǎo)致了他們兩者之間比較的字符產(chǎn)生了差異。
spring security應(yīng)該想代表的意思就是權(quán)限字符加了ROLE_就是角色Role,如果沒(méi)有加就是一個(gè)權(quán)限Authority,大家根據(jù)自己的實(shí)際情況靈活選用就好啦,希望給大家解釋清楚了~


總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java設(shè)計(jì)日歷可視化的詳細(xì)步驟記錄
這篇文章主要給大家介紹了關(guān)于java設(shè)計(jì)日歷可視化的相關(guān)資料,通過(guò)自定義的CircleLabel類來(lái)突出顯示今天的日期,并使用BorderLayout布局管理窗口組件,文章詳細(xì)描述了各個(gè)類和方法的設(shè)計(jì)思想和實(shí)現(xiàn)邏輯,需要的朋友可以參考下2024-12-12
后端實(shí)現(xiàn)數(shù)據(jù)脫敏的6種方案詳細(xì)介紹
這篇文章主要為大家詳細(xì)介紹了后端實(shí)現(xiàn)數(shù)據(jù)脫敏的6種方案,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-05-05
Spring Bean初始化及@PostConstruc執(zhí)行順序示例詳解
本文給大家介紹Spring Bean初始化及@PostConstruc執(zhí)行順序,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-07-07
Java使用 Spire.XLS 庫(kù)合并Excel文件的常見(jiàn)方法詳解
在企業(yè)級(jí)應(yīng)用開(kāi)發(fā)中,Excel文件處理幾乎是每個(gè)Java開(kāi)發(fā)者都會(huì)遇到的任務(wù),下面小編將為大家詳細(xì)講講如何基于Spire.XLS for Java實(shí)現(xiàn)Excel文件合并,有需要的可以了解下2025-10-10
java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)數(shù)據(jù)完整案例
遞歸算法的代碼比較簡(jiǎn)潔,可讀性較好;但是在實(shí)際的業(yè)務(wù)處理中會(huì)出現(xiàn)多次的重復(fù)調(diào)用,如果處理不好,很容易出現(xiàn)StackOverflowError報(bào)錯(cuò),這篇文章主要給大家介紹了關(guān)于java遞歸實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)數(shù)據(jù)的相關(guān)資料,需要的朋友可以參考下2023-04-04
springboot?ErrorPageFilter的實(shí)際應(yīng)用詳解
這篇文章主要介紹了springboot?ErrorPageFilter的實(shí)際應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
在SpringBoot中使用@Value注解來(lái)設(shè)置默認(rèn)值的方法
Spring Boot提供了一種使用注解設(shè)置默認(rèn)值的方式,即使用 @Value 注解,下面這篇文章主要給大家介紹了關(guān)于如何在SpringBoot中使用@Value注解來(lái)設(shè)置默認(rèn)值的相關(guān)資料,需要的朋友可以參考下2023-10-10
SpringBoot下使用自定義監(jiān)聽(tīng)事件的流程分析
事件機(jī)制是Spring的一個(gè)功能,目前我們使用了SpringBoot框架,所以記錄下事件機(jī)制在SpringBoot框架下的使用,同時(shí)實(shí)現(xiàn)異步處理,這篇文章主要介紹了SpringBoot下使用自定義監(jiān)聽(tīng)事件,需要的朋友可以參考下2023-08-08
WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例
這篇文章主要介紹了WebSocket整合SSM(Spring,Struts2,Maven)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01

