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标签相关推荐

  1. shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决

    shiro和Spring整合使用注解时没有执行realm的doGetAuthorizationInfo回调方法的解决 from :http://blog.csdn.net/babys/article/ ...

  2. shiro与springMVC整合

    注:该文基于springMVC已经配置好. 1. 架构预览 项目结构: shiro所需jar包: 2. 整合shiro 2.1 配置web.xml 注意,由于shiro的主要作用就是拦截判断,所以我们 ...

  3. Shiro安全框架(Shiro与SpringBoot整合开发)之图片验证码(五)

    这篇博文主要讲解实现图片验证码的实现,之前已经将权限,认证,自带缓存,redis缓存,都实现了,现在我们就来了解一下简单的图片验证码的实现: 首先,我们要来修改一下登录的页面,login.jsp这个页 ...

  4. 结合Layui框架,实现SpringMVC+Spring+Mybatis,SSM整合案例CRUD(超详细代码,外加说明)

    首先: 你需要去Layui官网下载UI框架.你可能会问,为什么用Layui实现页面效果?简单来说就是:简单.好用.上手快,作为JAVA后端开发人员,Layui无疑是非常友好的,拿来即用. 页面效果图: ...

  5. SSH框架整合——基于注解

    SSH框架整合--基于注解 @(Spring)[Spring, hibernate, struts2, 框架整合] SSH框架整合基于注解 SSH框架整合 第一步导入Jar包 第二步导入配置文件 第三 ...

  6. 【编程不良人】快速入门Spring学习笔记08---事务属性、Spring整合Structs2框架(SM)、Spring整合Mybatis+Struts2(SSM)、Spring注解、SSM注解式开发

    1. 事务属性 1.1 事务传播属性 配套视频:[编程不良人]快速入门Spring,SpringBoot.SpringCloud学不好完全是因为Spring没有掌握!_哔哩哔哩_bilibili # ...

  7. 【速学java】 java后台框架 springmvc整合mybatis框架源码

    三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统] A 调用摄像头拍照,自定义裁剪编辑 ...

  8. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle maven

    获取[下载地址]   QQ: 313596790 A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节 B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 ...

  9. springmvc整合mybatis框架源码 bootstrap html5 mysql oracle

    获取[下载地址]   QQ 313596790 三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体 [新录针对本系统的视频教程,手把手教开发一个模块,快速 ...

最新文章

  1. 习题10-3 递归实现指数函数 (15 分)
  2. 求数组当中子数组最大和
  3. python【Configparser解析配置文件库】Python3中的configparser模块
  4. 洛谷 P1596 [USACO10OCT]Lake Counting S-dfs
  5. Java中用split函数进行分割字符串。
  6. Atitit 面试问题总结
  7. Flarum正式版 简体中文语言包
  8. 3dmaxobj导出选项,3DMAX将模型导出OBJ格式和贴图
  9. QT软件ICON图标在线制作
  10. failed shard on node [XXX], failed recovery, failure RecoveryFailedException
  11. 花 3 分钟时间了解技术人应具备的思维能力 - 抽象
  12. Harbor docker login x509 certificate signed by unknown authority
  13. 超详细的Android so库的逆向调试
  14. WPF自定义日期时间控件
  15. 【深度学习 项目实战】Keras深度学习多变量时间序列预测的LSTM模型
  16. 字符流、字节流、缓冲流、序列化流
  17. Laya魅族手动关闭banner广告之后打不开
  18. 12- 降维算法 (PCA降维/LDA分类/NMF) (数据处理)
  19. 为什么说手游代理是目前比较具有优势的创业方式呢?
  20. 2010南非世界杯预选赛之路

热门文章

  1. mysql利用存储过程批量插入数据
  2. python存储numpy数据为文件_numpy.savetxt是否将数组保存到文件中的特定位置?
  3. 中兴c600olt数据配置_中兴上架Blade 20smart孝心版
  4. ElasticSearch_查询过滤排序
  5. 教师要与时俱进,不要自以为正确
  6. 青稞大义 -RISV-V
  7. 调试来自于逐飞的MM32F3277移植有MicroPython开发板
  8. 2021年春季学期-信号与系统-第五次作业参考答案-第六小题
  9. 2021春季学期-创新设计与实践-Lesson4
  10. 第十五届全国大学生智能车竞赛 室外光电组线上选拔赛比赛流程