shiro注解使用
来源:互联网 发布:哪个软件可以写日记 编辑:程序博客网 时间:2024/05/16 06:43
@RequiresAuthentication
验证用户是否登录,等同于方法subject.isAuthenticated() 结果为true时。
@RequiresUser
验证用户是否被记忆,user有两种含义:
一种是成功登录的(subject.isAuthenticated() 结果为true);
另外一种是被记忆的(subject.isRemembered()结果为true)。
@RequiresGuest
验证是否是一个guest的请求,与@RequiresUser完全相反。
换言之,RequiresUser == !RequiresGuest。
此时subject.getPrincipal() 结果为null.
@RequiresRoles
例如:@RequiresRoles("aRoleName");
void someMethod();
如果subject中有aRoleName角色才可以访问方法someMethod。如果没有这个权限则会抛出异常AuthorizationException。
@RequiresPermissions
例如: @RequiresPermissions({"file:read", "write:aFile.txt"} )
void someMethod();
要求subject中必须同时含有file:read和write:aFile.txt的权限才能执行方法someMethod()。否则抛出异常AuthorizationException。
RequiresAuthentication:
使用该注解标注的类,实例,方法在访问或调用时,当前Subject必须在当前session中已经过认证。
RequiresGuest:
使用该注解标注的类,实例,方法在访问或调用时,当前Subject可以是“gust”身份,不需要经过认证或者在原先的session中存在记录。
RequiresPermissions:
当前Subject需要拥有某些特定的权限时,才能执行被该注解标注的方法。如果当前Subject不具有这样的权限,则方法不会被执行。
RequiresRoles:
当前Subject必须拥有所有指定的角色时,才能访问被该注解标注的方法。如果当天Subject不同时拥有所有指定角色,则方法不会执行还会抛出AuthorizationException异常。
RequiresUser
当前Subject必须是应用的用户,才能访问或调用被该注解标注的类,实例,方法。
使用方法:
Shiro的认证注解处理是有内定的处理顺序的,如果有个多个注解的话,前面的通过了会继续检查后面的,若不通过则直接返回,处理顺序依次为(与实际声明顺序无关):
RequiresRoles
RequiresPermissions
RequiresAuthentication
RequiresUser
RequiresGuest
例如:你同时声明了RequiresRoles和RequiresPermissions,那就要求拥有此角色的同时还得拥有相应的权限。
1) RequiresRoles
- 可以用在Controller或者方法上。可以多个roles,多个roles时默认逻辑为 AND也就是所有具备所有role才能访问。
- 1
- 2
- 3
- 4
- 5
- 6
- 示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
2) RequiresPermissions
- 与 RequiresRoles类似
- 1
- 2
- 3
- 4
- 5
- 6
- 示例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3) RequiresAuthentication,RequiresUser,RequiresGuest
- 这三个的使用方法一样
- 1
- 2
- 3
注:Shiro依赖于slf4j,commons-beanutils,commons-logging三个jar包。
- Shiro 注解的使用
- 二、使用Shiro注解
- Shiro方法/注解使用
- shiro注解使用
- shiro的RequiresPermissions注解使用
- shiro注解的使用注意点
- spring整合shiro使用注解方式配置
- shiro自定义realm无法使用注解
- 项目Shiro注解权限角色使用
- shiro 注解
- Shiro注解
- shiro日记②注解使用与常用注解
- 给JFinal添加Shiro插件功能,支持Shiro所有注解-使用篇
- shiro 注解没起作用
- shiro注解配置
- 自学-shiro注解-16
- shiro-权限注解
- shiro的注解
- linux删除回收站
- linux基本命令
- 敏捷设计简单说明
- Hadoop完全分布式安装
- [初学笔记] matlab中eval,evalin,evalc的用法
- shiro注解使用
- 整合Spring Cloud微服务分布式云架构企业的技术点
- 这个背景怎么实现的?
- spark基础之调度器运行机制简述
- angular4响应式表单与校验
- ROS(indigo)机器人操作系统学习资料和常用功能包汇总整理(ubuntu14.04LTS)
- UVa11367
- 常见代码问题_1
- python @property,description,修饰符用法