文档章节

Shiro能够检测出的异常(对于理解Shiro的认证有好处)

Deathdealer
 Deathdealer
发布于 2015/07/03 16:06
字数 946
阅读 277
收藏 0

第一类是认证相关的Exception,都继续自AuthenticationException

ConcurrentAccessException:

当认证请求时,该帐户已经处于认证完成的状态(例如:已登录)时,如果系统被配置成阻止重复登录时就会抛出该异常。

当应用程序在同一时间段内1个帐号只允许1次登录时非常有用。很多时候因为偷懒,会把用户名和密码给透露给很多人以方便使用系统。但这种行为在要求记录用户行为的系统中是不符合需求的(比如说政府项目),或者按照用户来分配License的系统中也是不允许的。

通过禁止这种并发访问,系统可以保证在给定的时间里,每一个认证的会话只与1个用户对应。

CredentialsException:

当用户提交的凭证有问题,抛出这个异常。比如说密码错误等。


DisabledAccountException:

当尝试认证已经因为某种原因已经被Ban掉的帐号时抛出这个异常。 一些对于安全性要求比较高的系统,这种行为值得注意。


ExcessiveAttemptsException:

当系统被配置成固定的认证请求次数时,如果失败的认证请求次数超过这个数值时,就会抛出这个异常。针对这种穷举,各个系统是不一样的,大部分系统会临时或永久的冻结该帐户来防止进步的尝试。


ExpiredCredentialsException:

当系统在认证的过程中确定用户提交的凭证已经过期且不允许再登录时,会抛出此异常。

这通常用在警告用户:凭证(密码,密钥等)已经过期,需要更换了。很多应用程序调用认证处理时,捕获这种异常后会跳转到相应的能够修改凭证的页面上。


IncorrectCredentialsException:

当认证请求中提交的凭证与实际的凭证不符合时,抛出此异常。

通常也就是认证失败了。比如说用户的密码是”secret“,而误输入为"secrets",这个异常就会被抛出来。

当捕获这个异常时,让不让用户知道输入了错误的凭证,这个根据系统的要求可以自由决定是否在页面上显示相应的Message。


LockedAccountException:

这个异常继承自DisabledAccountException,是一种特定的DisabledAccountException。当请求认证的用户已经被明确标记为锁定状态

时抛出这个异常。比如过多的失败尝试导致该用户被锁定。


UnknownAccountException:

当请求认证的帐号在系统中不存在时,抛出此异常。

当捕获这个异常时,通常会跳转到用户注册页面,或者是给出注册的链接让用户决定是否注册。

第二类是授权相关的Exception,都继续自AuthorizationException

UnauthenticatedException:

当用户还没有进行认证时,就尝试执行需要授权的动作时,会抛出此异常。

只有当用户成功认证以后才能执行授权,因为授权数据(角色,权限等)通常都会与用户ID进行关联,而用户ID只有当用户成功登录以后才能取得。


UnauthorizedException:

当尝试访问无权访问的资源时,抛出此异常。捕获此异常时,可以重定向到提示画面,记入日志,冻结帐号等,取决于系统的安全要求。


HostUnauthorizedException:

继承自UnauthorizedException,当指定的客户端(IP,MAC地址等)不允许访问系统,或者是客户端虽然能够访问系统但是在尝试访问未授权的资源时,会抛出此异常。





© 著作权归作者所有

Deathdealer
粉丝 5
博文 19
码字总数 8955
作品 0
常州
程序员
私信 提问
从权限控制到shiro框架的应用

说明:本文很多观点和内容来自互联网以及各种资料,如果侵犯了您的权益,请及时联系我,我会删除相关内容。 权限管理 基本上涉及到用户参与的系统都要进行权限管理,权限管理属于系统安全的范...

神秘的寇先森
2018/01/01
0
0
在 Web 项目中应用 Apache Shiro 开源权限框架

Apache Shiro 是功能强大并且容易集成的开源权限框架,它能够完成认证、授权、加密、会话管理等功能。认证和授权为权限控制的核心,简单来说,“认证”就是证明你是谁? Web 应用程序一般做法...

IBMdW
2013/02/05
21.2K
38
关于开源权限框架Shiro的笔记(一)

Shiro的官方文档的URL是:http://shiro.apache.org/reference.html。引入如下依赖: <!-- junit --><dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</v......

DENGJM
2015/09/28
47
0
在 Web 项目中应用 Apache Shiro

用户权限模型 在揭开 Shiro 面纱之前,我们需要认知用户权限模型。本文所提到用户权限模型,指的是用来表达用户信息及用户权限信息的数据模型。即能证明“你是谁?”、“你能访问多少受保护资...

heroShane
2014/02/09
454
3
shiro实战系列(一)之入门实战

一、什么是shiro? Apache Shiro 是一个强大而灵活的开源安全框架,它干净利落地处理身份认证,授权,企业会话管理和加密。 Apache Shiro 的首要目标是易于使用和理解。安全有时候是很复杂的,...

youcongtech
2018/06/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
54分钟前
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
4
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部