46 lines
2.5 KiB
Markdown
46 lines
2.5 KiB
Markdown
---
|
|
id: default-exception
|
|
title: sureness 默认认证鉴权异常
|
|
sidebar_label: 默认异常类型
|
|
---
|
|
|
|
`sureness`使用异常处理流程:
|
|
1. 若认证鉴权成功,`checkIn`会返回包含用户信息的`SubjectSum`对象
|
|
2. 若中间认证鉴权失败,`checkIn`会抛出不同类型的认证鉴权异常,用户需根据这些异常来继续后面的流程(返回相应的请求响应)
|
|
|
|
这里我们就需要对`checkIn`抛出的异常做自定义处理,认证鉴权成功直接通过,失败抛出特定异常进行处理,如下:
|
|
|
|
```
|
|
try {
|
|
SubjectSum subject = SurenessSecurityManager.getInstance().checkIn(servletRequest);
|
|
} catch (ProcessorNotFoundException | UnknownAccountException | UnsupportedSubjectException e4) {
|
|
// 账户创建相关异常
|
|
} catch (DisabledAccountException | ExcessiveAttemptsException e2 ) {
|
|
// 账户禁用相关异常
|
|
} catch (IncorrectCredentialsException | ExpiredCredentialsException e3) {
|
|
// 认证失败相关异常
|
|
} catch (UnauthorizedException e5) {
|
|
// 鉴权失败相关异常
|
|
} catch (RuntimeException e) {
|
|
// 其他自定义异常
|
|
}
|
|
```
|
|
|
|
sureness 默认支持的异常处理流程中的异常如下:
|
|
|
|
`sureness`异常 | 异常描述
|
|
--- | ---
|
|
SurenessAuthenticationException | 基础认证异常,认证相关的子异常应该继承此异常
|
|
SurenessAuthorizationException | 基础鉴权异常,鉴权相关的子异常应该继承此异常
|
|
ProcessorNotFoundException | 认证异常,未找到支持此subject的processor
|
|
UnknownAccountException | 认证异常,不存在此账户
|
|
UnSupportedSubjectException | 认证异常,不支持的请求,未创建出subject
|
|
DisabledAccountException | 认证异常,账户禁用
|
|
ExcessiveAttemptsException | 认证异常,账户尝试认证次数过多
|
|
IncrrectCredentialsException | 认证异常,密钥错误
|
|
ExpiredCredentialsException | 认证异常,密钥认证过期
|
|
NeedDigestInfoException | 认证异常, 通过getAuthenticate()返回客户端digest认证所需信息
|
|
UnauthorizedException | 鉴权异常,没有权限访问此资源
|
|
|
|
自定义异常需要继承`SurenessAuthenticationException`或`SurenessAuthorizationException`才能被最外层捕获
|