spring集成shiro注解授权
来源:互联网 发布:it技术支持面试题 编辑:程序博客网 时间:2024/05/17 08:18
这种授权主要有3个配置:
1.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"></property>
</bean>
2.自定义realm中对于AuthorizationInfo方法的重写
//授权方法
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
Subject subject = SecurityUtils.getSubject();
User user = (User) subject.getPrincipal();
上面这两句是获取已登录的用户信息
//根据身份信息获取权限信息
List<String> permissions = new ArrayList<String>();
这句是初始化一个将要返回给授权器的一个字符串集合
if(user.getPositionNo()==0)
{
permissions.add("0");
}else if(user.getPositionNo()>7)
{
permissions.add("0");
permissions.add("1");
permissions.add("2");
}else
{
permissions.add("1");
}
这个判断是我项目中的判断,你们根据自己要求改动
//查到权限数据,返回授权信息
SimpleAuthorizationInfo simpleAuthorizationInfo = new SimpleAuthorizationInfo();
simpleAuthorizationInfo.addStringPermissions(permissions);
return simpleAuthorizationInfo;
把字符串集合返回给授权器,当项目中进行action访问的方法上有权限注解时,shiro就会在这个字符串集合中遍历查找有没有注解中的字符串,如果有就会执行action中的方法,如果没有就会报错 页面返回500错误页面
}
3.action中添加注解
@RequestMapping("/a")
@ResponseBody
@RequiresPermissions("2")
public void geta(){
}
以上3步就可以简单使用shiro的授权机制了,至于没有权限时,返回的500页面 ,就需要自己配置了.
- spring集成shiro注解授权
- Spring中集成Shiro授权实例
- spring mvc 集成shiro 过程中 shiro 注解不起作用
- spring boot 集成shiro(用户授权和权限控制)
- 第十二章 与Spring集成(三) Shiro权限注解
- Apache Shiro 注解方式授权
- shiro注解授权源码分析
- Apache Shiro 集成-spring
- shiro与spring集成
- Apache Shiro 集成-spring
- Shiro集成Spring
- shiro 与spring集成
- spring-boot集成shiro
- Spring集成Shiro
- spring boot集成shiro
- Shiro与Spring集成
- shiro与spring集成
- [spring-boot] 集成shiro
- 剑指offer--面试题13:在O(1)时间删除链表结点--Java实现
- 科研之路
- POJ 2096Collecting Bugs(概率期望dp)
- JAVA-Unsafe
- C#之登录界面详解
- spring集成shiro注解授权
- PHP 冒泡排序
- 在visual studio 2013 中写动态算法库并调用
- mysql按时,天,月,年统计数据
- Angular实现简单购物车效果(代码)
- KMP
- 匈牙利哦模板 二分匹配 完全匹配问题
- 基于FFMPEG的RTP推流H264和AAC文件
- POJ 1090 Chain 笔记