提供了對根物件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,它的解...