1. 程式人生 > >BOS物流項目第十一天

BOS物流項目第十一天

src fun 全局異常 全局 strong jsp頁面 權限控制 運行 spring

教學計劃

1、在realm中進行授權

2、使用shiro的方法註解方式權限控制

a. spring文件中配置開啟shiro註解支持

b. Action方法上使用註解

3、使用shiro的標簽進行權限控制

a. 在頁面引入shiro的標簽庫

b. 在頁面中使用標簽

4、總結shiro提供的權限控制方式

a. URL攔截權限控制

b. 方法註解權限控制

c. 頁面標簽權限控制

d. 代碼級別權限控制(了解)

5、權限管理

a. 初始化權限數據

b. 添加權限功能

c. 權限分頁查詢

1 realm中進行授權

BOSRealm中實現授權方法:

技術分享圖片

2 使用shiro的方法註解方式權限控制

第一步:在spring配置文件中開啟shiro註解支持

在application.xml中加入下面代碼。

<!-- 開啟shiro框架註解支持 -->
    <bean id="defaultAdvisorAutoProxyCreator" 
        class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
            <!-- 必須使用cglib方式為Action對象創建代理對象 -->
        <property name="proxyTargetClass" value="true"/>
    </bean>
    
    <!-- 配置shiro框架提供的切面類,用於創建代理對象 -->
    <bean class
="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"/>

第二步:在Action的方法上使用shiro註解

技術分享圖片

第三步:在struts.xml中配置全局異常捕獲,當shiro框架拋出權限不足異常時,跳轉到權限不足提示頁面

技術分享圖片

技術分享圖片

3 使用shiro提供的頁面標簽方式權限控制

第一步:在jsp頁面中引入shiro的標簽庫

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

第二步:使用shiro的標簽控制頁面元素展示

技術分享圖片

4 總結shiro框架提供的權限控制方式

①URL攔截權限控制(基於過濾器實現)

技術分享圖片

方法註解權限控制(基於代理技術實現)

技術分享圖片

③頁面標簽權限控制(標簽技術實現)

技術分享圖片

④ 代碼級別權限控制(基於代理技術實現)

技術分享圖片

5 權限數據管理

5.1 初始化權限數據

當項目上線後,如果正常運行,需要依賴一些基礎數據支持。權限數據,就屬於基礎數據,因為系統的菜單是從權限表查詢獲得的。一般會提供sql腳本文件,導入基礎數據。

技術分享圖片

技術分享圖片

5.2 添加權限數據

頁面:WEB-INF/pages/admin/function_add.jsp

修改jsp頁面

技術分享圖片

先實現父功能點下拉框有數據可選擇,然後可提交保存表單。

第一步:修改頁面中父功能點對應的combobox,修改URL地址

技術分享圖片

技術分享圖片

第二步:創建FunctionActionServiceDao,查詢所有的權限,返回json

action代碼:

技術分享圖片

第三步:配置struts.xml

技術分享圖片

效果圖如下:

技術分享圖片

第四步:為添加頁面中保存按鈕綁定事件,進行校驗,如果校驗通過就提交表單

技術分享圖片

技術分享圖片

第五步:在FunctionAction中創建add方法,添加權限

action代碼:

技術分享圖片

service代碼:

技術分享圖片

5.3 權限分頁查詢

第一步:修改頁面中datagridURL地址

技術分享圖片

第二步:在Action中提供分頁查詢方法

技術分享圖片

總結

總的來說,自己對於代碼還是不太熟,有時候還要再去參考才能寫出來。

BOS物流項目第十一天