什麼是shiro 4 INI配置說明

2021-08-01 15:13:56 字數 2629 閱讀 2000

提供了對根物件securitymanager及其依賴的配置

securitymanager=org.apache.shiro.mgt.defaultsecuritymanager

securitymanager.realms=$jdbcrealm

提供了對使用者/密碼及其角色的配置,使用者名稱=密碼,角色1,角色2

username=password,role1,role2
提供了角色及許可權之間關係的配置,角色=許可權1,許可權2

role1=permission1,permission2
用於web,提供了對web url攔截相關的配置,url=***[引數],***

/index.html = anon

/admin/** = authc, roles[admin], perms["permission1"]

提供了對根物件securitymanager及其依賴物件的配置。

建立物件

securitymanager=org.apache.shiro.mgt.defaultsecuritymanager
其構造器必須是public 空參構造器,通過反射建立相應的例項。

常量值 setter注入

datasource.driverclassname=com.mysql.jdbc.driver

jdbcrealm.permissionslookupenabled=

true

會自動呼叫jdbcrealm.setpermissionslookupenabled(true),對於這種常量值會自動型別轉

換。物件引用setter注入

authenticator=org.apache.shiro.authc.pam.modularrealmauthenticator

authenticationstrategy=org.apache.shiro.authc.pam.atleastonesuccessfulstrategy

authenticator.authenticationstrategy=$authenticationstrategy

securitymanager.authenticator=$authenticator

會自動通過securitymanager.setauthenticator(authenticator)注入引用依賴。

巢狀屬性 setter注入

securitymanager.authenticator.authenticationstrategy=$authenticationstrategy
也支援這種巢狀方式的setter注入。

byte陣列setter注入

base64 byte

authenticator.bytes=agvsbg8=

hex byte

authenticator.bytes=

0x68656c6c6f

預設需要使用base64 進行編碼,也可以使用0x 十六進製制。

array/set/list setter注入

authenticator.array=1,

2,3authenticator.set=$jdbcrealm,$jdbcrealm

多個之間通過「,」分割。

map setter注入

authenticator.map=$jdbcrealm:$jdbcrealm,1:

1,key:abc

即格式是:map=key:value,key:value,可以注入常量及引用值,常量的話都看作字串

(即使有泛型也不會自動造型)。

例項化/注入順序

realm=realm1

realm=realm12

authenticator.bytes=agvsbg8=

authenticator.bytes=

0x68656c6c6f

後邊的覆蓋前邊的注入。

測試用例請參考配置檔案shiro-config-main.ini。

securitymanager.

配置使用者名稱/密碼及其角色,格式:「使用者名稱=密碼,角色1,角色2」,角色部分可省略。

如:

zhang=

123,role1,role2

wang=

123

#[roles]部分

配置角色及許可權之間的關係,格式:「角色=許可權1,許可權2」;

如:

role1=user:create,user:update

role2=

*

如果只有角色沒有對應的許可權,可以不配roles

配置 url及相應的***之間的關係,格式:「url=***[引數],***[引數],

如:

/admin/** = authc, roles[admin], perms["permission1"]

shiro學習筆記 4 ini 配置

shiro是從根物件securitymanager進行身份驗證和授權的 也就是所有操作都是自它開始的,這個物件是執行緒安全且真個應用只需要乙個即可,因此shiro提供了securityutils讓我們繫結它為全域性的,方便後續操作。因為shiro的類都是pojo的,因此都很容易放到任何ioc容器管理...

什麼是VoLTE?什麼是4G ?

什麼是volte?volte是基於ims的語音業務。volte即voice over lte,它是一種ip資料傳輸技術,無需2g 3g網,全部業務承載於4g網路上,可實現資料與語音業務在同一網路下的統一。現在我們用的4g網路只是用來實現資料傳輸,語音通話用的是3g或是2g,走的是cs域,所以volt...

什麼是4K電視

高畫質一直是電視行業宣傳的重點,從1080p 再到2k 又到現在的 4k,但是 4k到底是什麼?不知道,有些人知道好,到時不知道好在 有些人壓根不知道還有 4k這麼一回事,甚至誤以為是電視的 這邊給大家簡單介紹 4k電視是怎麼一回事。首先4k電視屬於超高清電視,其解析度達到3840 2160,它的解...