什么是 Spring Security
目录:
参考链接:https://www.cnblogs.com/crazymakercircle/p/14488160.html (opens new window)
# 什么是 Spring Security ?
Spring Security 是一套安全框架,可以基于RBAC(基于角色的权限控制)对用户的访问权限进行控制,核心思想是通过一系列的 filter chain 来进行拦截过滤,对用户的访问权限进行控制。
Spring Security 的核心功能主要包括:
- 认证 (你是谁)
- 授权 (你能干什么)
- 攻击防护 (防止伪造身份)
Spring Security 的核心实现是一组过滤器链,项目启动后将会自动配置。最核心的就是 Basic Authentication Filter 用来认证用户的身份。
理解:Username Password Authentication Filter 会检查是否是一个登录请求、是否包含username 和 password (即该过滤器需要的一些认证信息) ,如果不满足则放行给下一个 Basic Authentication Filter。Basic Authentication Filter 按照自身职责判定是否是自身需要的信息,basic 的特征就是在请求头中有 、Authorization:Basic eHh4Onh4
的信息。这之后的中间可能还有更多的认证过滤器。最后一环是 FilterSecurityInterceptor,这里会判定该请求是否能进行访问 REST API,判断的依据是 BrowserSecurityConfig 中的配置,如果被拒绝了就会根据具体的原因抛出不同的异常。Exception Translation Filter 会捕获抛出的异常,然后根据不同的认证方式进行信息的返回提示。
注意:绿色的过滤器可以配置是否生效,其他的都不能控制。