Spring Security系列文章目录
关于Spring Security
Spring Security详解(1)
Spring Security详解(2)
Spring Security关于异常的处理
文章目录
前言
前面三期已经介绍完了Spring Security的详细开发流程,这期主要解决Spring Security异常的处理。
提示:以下是本篇文章正文内容,部分代码可供参考
一、处理异常
在登录时,可能出现:
- 用户名错误:
BadCredentialsException
- 密码错误:
BadCredentialsException
- 账号被禁用:
DisabledException
在访问时,可能出现:
- 无此权限:
AccessDeniedException
以上异常都可以由统一处理异常的机制进行处理,关于统一处理异常的机制,参考专栏系列文章之MVC设计思想。则先在ServiceCode
中添加对应的业务状态码:
public interface ServiceCode {
Integer OK = 20000; //成功
Integer ERR_BAD_REQUEST = 40000; //请求参数格式错误
Integer ERR_UNAUTHORIZED = 40100; //未授权登录
Integer ERR_UNAUTHORIZED_DISABLE = 40101; //未授权登录
Integer ERR_FORBIDDEN = 40300; //无权限访问
Integer ERR_NOT_FOUND = 40400; //相关资源或数据不存在
Integer ERR_CONFLICT = 40900; //数据冲突,例如尝试添加不允许重复的数据
Integer ERR_INSERT = 50001; //插入数据时的错误
Integer ERR_DELETE = 50002; //删除数据时的错误
Integer ERR_UPDATE = 50003; //修改数据时的错误
Integer ERR_INTERNAL_SERVER_ERROR = 50000; //服务器内部错误,通常是未确定的异常类型
Integer ERR_JWT_PARSE = 60000; //解析jwt失败:格式错误,或签名错误
Integer ERR_JWT_EXPIRED = 60001; //解析jwt失败:过期
}
然后,在统一处理异常的类中,添加对相关异常的处理:
@ExceptionHandler