教学计划

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物流项目第十一天的更多相关文章

  1. BOS物流项目第十一天(补充)

    上节课我们在添加权限时,把选择父功能点做成这种效果,不太好,我们进行升级优化. 1.我们对jsp页面进行修改,主要是改了样式. 2.重新编写我们dao层的代码 3.在我们查看父项的时候自动查找子项,我 ...

  2. BOS物流项目心得

    定区管理 (和分区有何区别) : 区域管理针对自然行政区, 行政区域比较大,不可能让取派员去负责整个行政区域, 需要进行分区,将行政区域细分 ,成为很多小区域(分区), 需要为分区知道取派人员 , 在 ...

  3. JAVAEE——BOS物流项目01:学习计划、搭建环境、主页设计(jQuery EasyUI)

    1 学习计划 1.项目概述 项目背景介绍 2.搭建项目开发环境 数据库环境 maven项目搭建 svn环境搭建 3.主页设计(jQuery EasyUI) layout页面布局 accordion折叠 ...

  4. JAVAEE——BOS物流项目03:学习计划、messager、menubutton、登陆拦截器、信息校验和取派员添加功能

    1 学习计划 1.jQuery easyUI messager使用方式 n alert方法 n confirm方法 n show方法 2.jQuery easyUI menubutton使用方式 3. ...

  5. JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入

    1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...

  6. 学习BOS物流项目第九天

    1 教学计划 1.业务受理需求分析 a. 业务通知单 b.工单 c.工作单 2.创建业务受理环节的数据表 a.业务通知单 b.工单 c.工作单 3.实现业务受理自动分单 a.在CRM服务端扩展方法根据 ...

  7. JAVAEE——BOS物流项目05:OCUpload、POI、pinyin4J、重构分页代码、分区添加、combobox

    1 学习计划 1.实现区域导入功能 n OCUpload一键上传插件使用 n 将文件上传到Action n POI简介 n 使用POI解析Excel文件 n 完成数据库操作 n 使用pinyin4J生 ...

  8. JAVAEE——BOS物流项目08:配置代理对象远程调用crm服务、查看定区中包含的分区、查看定区关联的客户

    1 学习计划 1.定区关联客户 n 完善CRM服务中的客户查询方法 n 在BOS项目中配置代理对象远程调用crm服务 n 调整定区关联客户页面 n 实现定区关联客户 2.查看定区中包含的分区 n 页面 ...

  9. JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作

    1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...

随机推荐

  1. IIS7.5和IIS8如何设置FTP的pasv端口范围

    如果不设置端口范围,在防火墙开启的情况下,连接FTP时可能出现列表错误的现象,下面介绍下如何设置FTP的pasv端口范围.. 一.首先打开IIS选择服务器会进入全局设置,再双击FTP防火墙支持 二.设 ...

  2. Mac安装compass失败的原因

    之前一直用的windows电脑,突然间切换成mac,各种不习惯,刚开始的时候连文件夹都找不到,悲催…… 还好,熟悉了两天之后,基本上也能够操作了. 然后就是安装各种开发软件,由于个人习惯了使用sass ...

  3. MySQL关于sql_mode的修改(timestamp的默认值不正确)

    timestamp的默认值不正确原因: MySQL5.7版本中有了一个STRICT mode(严格模式),而在此模式下默认是不允许设置日期的值为全0值的,所以想要解决这个问题,就需要修改sql_mod ...

  4. .netLinq动态Where条件

    文章介绍全网最佳方式使用EF+Linq实现多条件组合查询:代码中没有使用到网上主流自定义Expression表达式而是采用linq原生态功能编写示例直观.易懂,且有效解决自定义Expression不支 ...

  5. LeetCode 3. longest characters & 切片

    Longest Substring Without Repeating Characters 找无重复的最长子串 第1次提交 class Solution: def lengthOfLongestSu ...

  6. TIDB资料收集

    https://github.com/pingcap/docs-cn https://github.com/pingcap/docs-cn/blob/master/op-guide/binary-de ...

  7. 使用spacedesk实现两台笔记本的双屏显示

    转自:https://blog.csdn.net/qq_28106269/article/details/79297132 共屏软件:https://spacedesk.net/

  8. 温故而知新-robots.txt语法教程

    用几个最常见的情况,直接举例说明:   1. 允许所有SE收录本站:robots.txt为空就可以,什么都不要写.   2. 禁止所有SE收录网站的某些目录: User-agent: * Disall ...

  9. TCP/UDP模型

    1网络接口层 MAC地址2网络互联层 IP地址3传输层 TCP/UDP端口号4应用层 应用层协议

  10. leetcode140

    class Solution(object): def wordBreak(self, s, wordDict): """ :type s: str :type word ...