瞭解權限控制框架shiro 之實際應用.

  Apache Shiro html

1.權限控制分爲 a.粗粒度 URL 級別權限控制web

          b.細粒度方法級別權限控制spring

 

 

2.使用shiro進行權限控制主要有四種主要方式 :
  a、 在程序中 經過 Subject 編程方式進行權限控制
  b、 配置 Filter 實現 URL 級別粗粒度權限控制
  c、 配置代理,基於註解實現細粒度權限控制
  d、 在頁面中使用 shiro 自定義標籤實現 頁面顯示權限控制
編程

3.shiro實際應用之基本配置:
  a.用父工程引入shiro
安全

  b.配置web.xmlapp

  c.配置applicationContext-shiro.xml
ui

  d.配置安全管理器
spa

  

搞定使用shiro以前所必須的基本配置後還須要瞭解 Shiro 的執行流程:   代理

  應用程序 --- Subject --- SecurityManager --- Realm 安全數據
xml

自定義 Realm 對象,實現認證方法:

  a.自定義 Realm 實現 Realm 接口 (實際開發中,只須要繼承 AuthorizingRealm

  b.將自定義 Realm 注入安全管理器 SecurityManager 當中

實現認證和受權方法.

 

 4.對頁面部分功能添加權限和角色須要

5. Apache Shiro 權限控制(小結)

第一種: URL 級別粗粒度權限控制
配置 web.xml shiroFilter 攔截 /*
spring applicationContext*.xml 配置文件中配置同名 bean,配置
filterChainDefinitions 攔截控制規則
xxx.html* = anon (未登陸能夠訪問)
xxx.html* =authc (必須登陸才能訪問 )
xxx.html* = perms[權限] (須要特定權限才能訪問)
xxx.html* = roles[角色] (須要特定角色才能訪問 )

第二種: 方法級別細粒度權限控制
spring applicationContext*.xml 配置 spring aop spring 管理 bean 對象開啓 shiro
註解支持
@RequiresPermissions(權限) 須要特定權限才能訪問
@RequiresRoles(角色) 須要特定角色才能訪問
@RequiresAuthentication 須要認證才能訪問

第三種:經過 shiro 自定義標籤,實現頁面元素顯示控制
<shiro:authenticated> 登陸後才能訪問
<shiro:hasPermission name="abc"> 須要特定權限才能訪問
<shiro:hasRole name="abc"> 須要特定角色才能訪問

第四種:在程序中經過代碼 判斷用戶是否具備指定權限(不太經常使用 ,有代碼侵入 )

補充: 權限表達式 「:」表明子權限
權限 courier 包含 courier:addcourier:listcourier:* ,若是用戶具備父權限,操做
全部子權限功能
權限 courier:list 包含 courier:list:10

 

 

 

/** * @author: Mr.shan * @creationTime:2017.12.3 */

相關文章
相關標籤/搜索