安全框架 - Shiro与springMVC整合的注解以及JSP标签
Shiro想必大家都知道了,之前的文章我也有提过,是目前使用率要比spring security都要多的一个权限框架,本身spring自己都在用shiro,之前的文章有兴趣可以去扒一下
最近正好用到shiro,简单聊聊几个小tips吧
<!-- 对静态资源设置匿名访问,即可以未登录状态下访问 -->/images/** = anon/js/** = anon/styles/** = anon/css/** = anon/page/getOrders.action = perms[order:query]/page/editOrderItemCounts.action = perms[order:edit]
在对资源访问的时候需要对url进行权限配置,在spring-shiro.xml中需要配置大量的上述代码,这样做可以,但是十分的冗余,而且也不利于后期维护,就像当初的hibernate一样,有很多的hbm文件,所以后来很多人都是用了注解形式,当然了,shiro也支持注解,这样的话会非常方便,程序员再开发代码的时候就可以完善相应的权限
在springmvc.xml中进行配置
<!-- 开启aop,对类代理 --><aop:config proxy-target-class="true"></aop:config><!-- 开启shiro注解支持 --><bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"><property name="securityManager" ref="securityManager" /></bean>
这样就可以在代码中使用注解了,需要注意的是,注解可以再controller, service 以及dao层使用,但是建议再controller中拦截,因为入口只有一个,而其他两层的方法是可以公用的
@RequiresPermissions("order:query")
另外jsp上可以这样使用:
<shiro:hasPermission name="order:edit"> <a href="<%=request.getContextPath() %>/page/editOrderItemCounts">修改商品</a> </shiro:hasPermission><br/><br/><shiro:hasPermission name="order:query">当前用户有查询订单权限</shiro:hasPermission> <shiro:lacksPermission name="order:add">当前用户没有下单权限</shiro:lacksPermission>
OK,这样整个权限的控制就没有问题了,直接控制到资源,而不是角色。
<shiro:authenticated> 登录之后 <shiro:notAuthenticated> 不在登录状态时 <shiro:guest> 用户在没有RememberMe时 <shiro:user> 用户在RememberMe时 <shiro:hasAnyRoles name="abc,123" > 在有abc或者123角色时 <shiro:hasRole name="abc"> 拥有角色abc <shiro:lacksRole name="abc"> 没有角色abc <shiro:hasPermission name="abc"> 拥有权限资源abc <shiro:lacksPermission name="abc"> 没有abc权限资源 <shiro:principal> 显示用户身份名称 <shiro:principal property="username"/> 显示用户身份中的属性值
最后再附上一张最基本的5张数据库权限表
安全框架 - Shiro与springMVC整合的注解以及JSP标签相关推荐
- shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决
shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决 from :http://blog.csdn.net/babys/article/ ...
- shiro与springMVC整合
注:该文基于springMVC已经配置好. 1. 架构预览 项目结构: shiro所需jar包: 2. 整合shiro 2.1 配置web.xml 注意,由于shiro的主要作用就是拦截判断,所以我们 ...
- Shiro安全框架(Shiro与SpringBoot整合开发)之图片验证码(五)
这篇博文主要讲解实现图片验证码的实现,之前已经将权限,认证,自带缓存,redis缓存,都实现了,现在我们就来了解一下简单的图片验证码的实现: 首先,我们要来修改一下登录的页面,login.jsp这个页 ...
- 结合Layui框架,实现SpringMVC+Spring+Mybatis,SSM整合案例CRUD(超详细代码,外加说明)
首先: 你需要去Layui官网下载UI框架.你可能会问,为什么用Layui实现页面效果?简单来说就是:简单.好用.上手快,作为JAVA后端开发人员,Layui无疑是非常友好的,拿来即用. 页面效果图: ...
- SSH框架整合——基于注解
SSH框架整合--基于注解 @(Spring)[Spring, hibernate, struts2, 框架整合] SSH框架整合基于注解 SSH框架整合 第一步导入Jar包 第二步导入配置文件 第三 ...
- 【编程不良人】快速入门Spring学习笔记08---事务属性、Spring整合Structs2框架(SM)、Spring整合Mybatis+Struts2(SSM)、Spring注解、SSM注解式开发
1. 事务属性 1.1 事务传播属性 配套视频:[编程不良人]快速入门Spring,SpringBoot.SpringCloud学不好完全是因为Spring没有掌握!_哔哩哔哩_bilibili # ...
- 【速学java】 java后台框架 springmvc整合mybatis框架源码
三大数据库 mysql oracle sqlsever 更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 调用摄像头拍照,自定义裁剪编辑 ...
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven
获取[下载地址] QQ: 313596790 A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 ...
- springmvc整合mybatis框架源码 bootstrap html5 mysql oracle
获取[下载地址] QQ 313596790 三大数据库 mysql oracle sqlsever 更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速 ...
最新文章
- 习题10-3 递归实现指数函数 (15 分)
- 求数组当中子数组最大和
- python【Configparser解析配置文件库】Python3中的configparser模块
- 洛谷 P1596 [USACO10OCT]Lake Counting S-dfs
- Java中用split函数进行分割字符串。
- Atitit 面试问题总结
- Flarum正式版 简体中文语言包
- 3dmaxobj导出选项,3DMAX将模型导出OBJ格式和贴图
- QT软件ICON图标在线制作
- failed shard on node [XXX], failed recovery, failure RecoveryFailedException
- 花 3 分钟时间了解技术人应具备的思维能力 - 抽象
- Harbor docker login x509 certificate signed by unknown authority
- 超详细的Android so库的逆向调试
- WPF自定义日期时间控件
- 【深度学习 项目实战】Keras深度学习多变量时间序列预测的LSTM模型
- 字符流、字节流、缓冲流、序列化流
- Laya魅族手动关闭banner广告之后打不开
- 12- 降维算法 (PCA降维/LDA分类/NMF) (数据处理)
- 为什么说手游代理是目前比较具有优势的创业方式呢?
- 2010南非世界杯预选赛之路
热门文章
- mysql利用存储过程批量插入数据
- python存储numpy数据为文件_numpy.savetxt是否将数组保存到文件中的特定位置?
- 中兴c600olt数据配置_中兴上架Blade 20smart孝心版
- ElasticSearch_查询过滤排序
- 教师要与时俱进,不要自以为正确
- 青稞大义 -RISV-V
- 调试来自于逐飞的MM32F3277移植有MicroPython开发板
- 2021年春季学期-信号与系统-第五次作业参考答案-第六小题
- 2021春季学期-创新设计与实践-Lesson4
- 第十五届全国大学生智能车竞赛 室外光电组线上选拔赛比赛流程