Spring+shiro配置JSP权限标签+角色标签+缓存
Spring+shiro,让shiro管理所有权限,特别是实现jsp页面中的权限点标签,每次打开页面需要读取数据库看权限,这样的方式对数据库压力太大,使用缓存就能极大减少数据库访问量。
下面记录下shiro配置JSP权限标签+角色标签+缓存的过程:
1首先在配置文件xml中配置securityManager。
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<!--认证管理器-->
<property name="realm" ref="permissionsRealm" />
<!-- 缓存管理器 -->
<property name="cacheManager" ref="shiroCacheManager" />
</bean>
<!--认证管理器实现类-->
<bean id="permissionsRealm" class="com.soft.security.Realm.PermissionsRealm" />
<!--缓存管理器实现类,这里用的是系统自带的-->
<bean id="shiroCacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager" />
2然后,在PermissionsRealm类中,重写doGetAuthorizationInfo方法,在方法中需要做两件事:(1)设置角色(2)设置权限点。代码如下:
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.addRole("角色名");
info.addStringPermission("权限点名");
3.此时,在JSP页面中就可以调用标签验证权限与角色了。
在页面顶部引用<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> 标签库,
然后在想触发权限点的地方写入:
<shiro:hasPermission name="1111">
用户拥有权限
</shiro:hasPermission>
如果用户有1111权限,则会显示“用户拥有权限”,同样,如果测试用户是否拥有某个角色,可以用以下标签:
<shiro:hasRole name="管理员">
用户拥有角色
</shiro:hasRole>
4.由于在1中,配置文件里面已经配置了缓存管理器,因此每次页面打开,后台只会读取一次用户角色+权限,后续都会用缓存,重新登陆后缓存自动清空。
Spring+shiro配置JSP权限标签+角色标签+缓存的更多相关文章
- Spring Shiro配置第三方SSO客户端登录
经过实践的Shiro配置,利用 sSOInterceptor 进行sso登录拦截 配置 @Configuration public class ShiroConfiguration extends B ...
- spring+shiro+springmvc+maven权限卡控示例
项目结构 UserController , 主要负责用户登入和注销. LinewellController, 主要负责请求受权限卡控的数据. MyRealm,自定义realm. Authorizati ...
- shiro中JSP标签
Shiro提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据登录用户显示相应的页面按钮. 导入标签库 <%@taglib prefix="shiro" uri=& ...
- JavaEE自定义标签:标签类的创建、tld配置文件的创建(位置、如何创建)、Web-XML配置、JSP应用
1.标签 以类似于html标签的方式实现的java代码的封装. 第一:形成了开发标签的技术标准---自定义标签的技术标准. 第二:java标准标签库(sun之前自己开发的一系列的标签的集合)jstl, ...
- Spring 配置标签——util标签
Spring 配置标签——util标签 一.配置applicationContext.xml <beans xmlns="http://www.springframework. ...
- spring boot中jsp解析c标签方法
pro.xml中添加jstl标签 <dependency><groupId>javax.servlet</groupId><artifactId>jst ...
- spring下配置shiro
1.web.xml中加入shiro的过滤器: <!-- Spring --> <!-- 配置Spring配置文件路径 --> <context-param> < ...
- 项目一:第十三天 1、菜单数据管理 2、权限数据管理 3、角色数据管理 4、用户数据管理 5、在realm中动态查询用户权限,角色 6、Shiro中整合ehcache缓存权限数据
1 课程计划 菜单数据管理 权限数据管理 角色数据管理 用户数据管理 在realm中动态查询用户权限,角色 Shiro中整合ehcache缓存权限数据 2 菜单数据添加 2.1 使用c ...
- 基于spring的shiro配置
shiro是一个特别简单,易用的框架,在此记录一下shiro的使用配置. 首先,创建四张表:user role user_role permission,分别为用户.角色.用户与角色关系表和权限 ...
随机推荐
- selenium笔记2017
1,from time import sleep(先引入关键词) sleep(5) (就可以使用这个命令了) 可以停止页面5秒 1-1. 等待页面元素出现的时间(即没出现时,等待元素出现) ...
- Java-Web 用html写一个简单的用户注册界面
代码: <!doctype htpl> <html> <head> <meta charset="utf-8" /> <tit ...
- 寒武纪-1005 Travel(树形DP)
一.题目链接 http://aiiage.hustoj.com/problem.php?id=1005 二.题面 PDF:http://aiiage.hustoj.com/upload/file/20 ...
- js实现的快速排序
快速排序是一种平均性能非常优秀的排序算法,在很多场合都会应用到他. 了解快速排序于对开放高效率的软件有很重要的作用. 但是有不少的书本讲得并不是很清楚,而且不同的教材的实现方式也不尽相同, 我这里将最 ...
- 使用Fiddler对Android手机的应用数据进行抓包分析
文章源自: http://blog.csdn.net/zshq280017423/article/details/8928616/ 对于Android开发的同事最头疼的事情莫过于真机抓包,然后Fidd ...
- Input设置只读属性
input设置为只读一般用于查看详情: 格式为: (1)单纯的input框 <div class="form-group"> <label for="c ...
- Pthreads Hello World,忙等待,互斥量
▶ 一个简单的 Pthreads 程序(不按照<并行程序设计导论>中的程序来写) ● 代码 #include <stdio.h> #include <pthread.h& ...
- python的多线程编程之锁
1. 背景概述 在上篇文章中,主要讲述了python中的socket编程的一些基本方面,但是缺少关于锁的相关概念,从而在这篇文章中进行补充. 由于在python中,存在了GIL,也就是全局解释器锁,从 ...
- 【320】Python 2.x 与 3.x 的区别
通过代码移植的报错进行梳理! 1. print 函数的区别 Python 2.x 中可以加空格或者括号,但是 Python 3.x 只能是括号的 # Python 2.x >>> p ...
- 迷你MVVM框架 avalonjs 1.3.5发布
本版本主要是修复内存泄漏问题,让其在移动端更好的运作. 修正visible BUG 详见这里 修正$fire方法里的正则错误 详见这里 修正ms-attr BUG,在IE9-11,直接用element ...