BOS物流项目第十一天
教学计划
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地址


第二步:创建FunctionAction、Service、Dao,查询所有的权限,返回json
action代码:

第三步:配置struts.xml

效果图如下:

第四步:为添加页面中保存按钮绑定事件,进行校验,如果校验通过就提交表单


第五步:在FunctionAction中创建add方法,添加权限
action代码:

service代码:

5.3 权限分页查询
第一步:修改页面中datagrid的URL地址

第二步:在Action中提供分页查询方法

总结
总的来说,自己对于代码还是不太熟,有时候还要再去参考才能写出来。
BOS物流项目第十一天的更多相关文章
- BOS物流项目第十一天(补充)
		上节课我们在添加权限时,把选择父功能点做成这种效果,不太好,我们进行升级优化. 1.我们对jsp页面进行修改,主要是改了样式. 2.重新编写我们dao层的代码 3.在我们查看父项的时候自动查找子项,我 ... 
- BOS物流项目心得
		定区管理 (和分区有何区别) : 区域管理针对自然行政区, 行政区域比较大,不可能让取派员去负责整个行政区域, 需要进行分区,将行政区域细分 ,成为很多小区域(分区), 需要为分区知道取派人员 , 在 ... 
- JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)
		1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ... 
- JAVAEE——BOS物流项目03:学习计划、messager、menubutton、登陆拦截器、信息校验和取派员添加功能
		1 学习计划 1.jQuery easyUI messager使用方式 n alert方法 n confirm方法 n show方法 2.jQuery easyUI menubutton使用方式 3. ... 
- JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入
		1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ... 
- 学习BOS物流项目第九天
		1 教学计划 1.业务受理需求分析 a. 业务通知单 b.工单 c.工作单 2.创建业务受理环节的数据表 a.业务通知单 b.工单 c.工作单 3.实现业务受理自动分单 a.在CRM服务端扩展方法根据 ... 
- JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox
		1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ... 
- JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户
		1 学习计划 1.定区关联客户 n 完善CRM服务中的客户查询方法 n 在BOS项目中配置代理对象远程调用crm服务 n 调整定区关联客户页面 n 实现定区关联客户 2.查看定区中包含的分区 n 页面 ... 
- JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
		1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ... 
随机推荐
- oracle提高查询效率的34个方面全解析
			oracle提高查询效率的34个方面全解析 在一个数据库中进行操作的时候,效率是很重要的,那么,如何提高oracle的查询效率呢?笔者将从以下几个方面进行详细解析: 1.选择最有效率的表名顺序(只 ... 
- django-media隐射
			需要再主url.py中设置 from django.urls import include, path from django.conf.urls.static import static from ... 
- 代码:jquery自定义插件 demo
			jquery自定义插件 demo 2016-1-13 只是一个简易的示例 <script type="text/javascript" src="http://cd ... 
- hadoop hdfs 元数据 journalnode editslog fsimage
			先上图,文章以后再上 截图有先后 所以有些延迟,但是不耽误总体的理解(active-nn=a-nn=active-namenode; s-nn=standby-nn=standby-namenode; ... 
- Mybatis学习4——一对一关联查询方法1--创建实体
			创建一个实体继承两个实体之一,另一个实体作为属性 实体1. order package pojo; import java.util.Date; public class Order { privat ... 
- RecyclerView下拉刷新上拉加载更多
			现在Android里都建议用RecyclerView代替ListView和GridView,所以下拉刷新和上拉加载更多也需要实现.下拉刷新可以用SwipeRefreshLayout 包裹Recycle ... 
- python Requests库网络爬取IP地址归属地的自动查询
			#IP地址查询全代码import requestsurl = "http://m.ip138.com/ip.asp?ip="try: r = requests.get(url + ... 
- 分享给大家一个500G.Net ftp资料库
			把自己经常用到的一个ftp资料库分析给大家,大家可以到上面下载资料学习,资料比较齐全,另外还有部分工具, ftp的地址是:ftp://202.107.251.26 
- DLL 调试(C# 调用 C++ 的 DLL)
			操作步骤: (1) C++ 的 DLL 项目中设置断点: (2) C# 工程右键[属性]->[调试]->[启动调试器]中选中[启动本机代码调试]. 注:要调试 DLL 必须有 DLL 的源 ... 
- tp5增删改查
			tp5框架增删改查,相对于以前的源生代码而言,非常简单,主要是为了熟练的应用框架,下面的代码主要是tp5框架的增删改查,让我们的更好 掌握框架. <?php namespace app\inde ... 
