天天看點

Shiro架構(二)-ini檔案詳解

shiro.ini檔案說明:

ini即InitializationFile,指初始檔案。

在前文Shiro概述中介紹過,Shiro可以用來管理最簡單的移動應用程式,也可以用來管理複雜的企業項目(不了解Shiro基本知識的可以點選這裡檢視:Shiro架構(一)-Shiro概述),那麼在簡單的程式中,我們很多時候都不需要使用到資料庫,那麼怎麼擷取資料呢?shiro.ini檔案滿足了我們的需求,在不連接配接資料庫的情況下,我們可以在shiro.ini檔案中配置靜态資料。

shiro.ini檔案的組成部分:

shiro.ini檔案由四個部分組成:

1、[main]:定義全局變量資訊

内置SecurityManager對象,操作對象時,在[main]裡寫資料。

[main]
securityManager.屬性=值
property=xxx
securityManager.對象屬性=$property
           

2、[users]:定義使用者名和密碼資訊

[users]
# 定義使用者名為xxx,密碼為123
xxx=123
# 定義使用者名為xxx,密碼為123,同時具有a角色和b角色
xxx=123,a,b
           

3、[roles]:定義角色資訊

[roles]
a=權限1,權限2
b=權限3,權限4
           

4、[urls]:定義路徑資訊生效,在web應用中使用

[urls]
# urlpath=内置Filter或自定義Filter
# 通路時出現/login的urlpath必須要驗證,支援authc對應的Filter
/login=authc
# 任意的urlpath都不需要進行認證
/**=anno
# 所有的功能都必須保證使用者已登入
/**=user
# url xxx通路時必須保證使用者擁有角色a和角色b
/xxx=roles["a,b"]

案例:
# 隻要是以/login.html開始的路徑都放行
/login.html=anon
#所有的路徑都放行
/**=anon
# 所有url必須認證通過後才能放行
/**=authc
# 比對規則:隻要滿足一個規則就通過,是以如果要是用/**=anon,那麼/**=anon要放在最後
           

Shiro過濾器:

過濾器名稱 過濾器類 描述資訊
anon org.apache.shiro.web.filter.authc.AnonymousFilter 匿名過濾器
authc org.apache.shiro.web.filter.authc.FormAuthenticationFilter 如果繼續操作,需要做對應的表單驗證,否則不能通過
authcBasic org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter 基本http驗證過濾,如果不通過,跳轉到登入頁面
logout org.apache.shiro.web.filter.authc.LogoutFilter 登入退出過濾器
noSessionCreation org.apache.shiro.web.filter.authc.NoSessionCreationFilter 沒有session建立過濾器
perms org.apache.shiro.web.filter.authc.PermissionAuthorizationFilter 權限過濾器
port org.apache.shiro.web.filter.authc.PortFilter 端口過濾器,可以設定是否是指定端口,如果不是
rest org.apache.shiro.web.filter.authc.HttpMethodPermissionFilter http方法過濾器,可以指定如post不能進行通路等
roles org.apache.shiro.web.filter.authc.RolesAuthorizationFilter 角色過濾器,判斷目前使用者是否指定角色
ssl org.apache.shiro.web.filter.authc.SslFilter 請求需要通過ssl,如果不是跳轉傳回登入頁
user org.apache.shiro.web.filter.authc.UserFilter 如果通路一個已用使用者,比如記住我功能,需要走這一個過濾器

繼續閱讀