![e888e851-372f-eb11-8da9-e4434bdf6706.png](http://p02.5ceimg.com/content/e888e851-372f-eb11-8da9-e4434bdf6706.png)
1. 前言
最近实在比较忙,很难抽出时间来继续更 Spring Security 实战干货系列。今天正好项目中 Spring Security 需要对认证授权异常的处理,就分享出来吧 。
2. Spring Security 中的异常
Spring Security 中的异常主要分为两大类:一类是认证异常,另一类是授权相关的异常。
2.1 AuthenticationException
AuthenticationException
是在用户认证的时候出现错误时抛出的异常。主要的子类如图:
![ea88e851-372f-eb11-8da9-e4434bdf6706.png](http://p04.5ceimg.com/content/ea88e851-372f-eb11-8da9-e4434bdf6706.png)
根据该图的信息,系统用户不存在,被锁定,凭证失效,密码错误等认证过程中出现的异常都由 AuthenticationException
处理。
2.2 AccessDeniedException
AccessDeniedException
主要是在用户在访问受保护资源时被拒绝而抛出的异常。同 AuthenticationException
一样它也提供了一些具体的子类。如下图:
![eb88e851-372f-eb11-8da9-e4434bdf6706.png](http://p03.5ceimg.com/content/eb88e851-372f-eb11-8da9-e4434bdf6706.png)
AccessDeniedException
的子类比较少,主要是 CSRF
相关的异