1. 程式人生 > >Shiro的INI配置檔案

Shiro的INI配置檔案

一、INI檔案簡介

INI配置檔案是一種key/value的鍵值對配置,分為[main]、[users]、[roles]、[urls]四個部分,每一個部分中的key不可重複,#號代表註釋,shiro.ini檔案預設在/WEB-INF/ 或classpath下,shiro會自動查詢,INI配置檔案相當於一個靜態資料庫。

二、四個部分 

1、[main]

這部分配置類物件,或設定屬性等操作,內建了根物件,securityManager。

[main]
securityManager.屬性=值
key=value
securityManager.物件屬性=com.xxx.pojo.People  #後面值是字串

peo=com.xxx.pojo.People
securityManager.物件屬性=$peo        #出現$時才表示是引用物件

2、[users]

定義使用者,密碼及使用者可以具有的角色.

[users]
使用者名稱=密碼,角色1,角色2     #角色部分可以省略.
zhangsan=zs
zhangsan=zs,role1,role2

3、[roles]

定義角色具有的許可權

角色名=許可權名,許可權名
role1=user:insert,user:update
role2=insert,update
role3=user:*

4、[urls]

定義哪個控制器被哪個過濾器過濾

[urls]
控制器名稱=過濾器名稱
/login=authc
/**=anon

三、使用程式碼獲取INI配置檔案

public static void main(String[] args) {

		// 建立工廠
		Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini");
		// 建立容器
		SecurityManager manager = factory.getInstance();
		SecurityUtils.setSecurityManager(manager);
		// 獲取當前的subject
		Subject subject = SecurityUtils.getSubject();
        。。。。。。
        略
}