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


  Apache Shiro

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

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

 

 

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

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

  b.配置web.xml

  c.配置applicationContext-shiro.xml

  d.配置安全管理器

  

搞定使用shiro之前所必須的基本配置后還需要了解 Shiro 的執行流程:   

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

自定義 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
*/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM