一、Spring Security 简介
Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是一套保护基于spring开发的应用程序的事实标准。Spring Security是一个重点为Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Spring Security的真正强大之处在于它可以很容易地扩展以满足定制需求。
二、Spring Security 核心功能
- 身份认证-用户登录;
- 访问授权-权限控制;
- 攻击防护-防止伪造身份;
三、Spring Security 基本原理
Spring Security核心就是一组过滤器链,每个过滤器实现一个独立功能,用户请求通过滤器链进行登录、授权、权限校验等操作,最终执行目标服务。
用户登录流程。用户登录过滤器用来拦截并处理用户登录请求,登录成功后使用SecurityContextHolder存储用户登录信息。例如,登录验证过滤器BasicAuthenticationFilter。当一个HTTP请求中包含一个名字为Authorization的头信息,并且其值格式是Basic xxx,BasicAuthenticationFilter会认为这是一个BASIC authorization头部,其中xxx部分应该是一个base64编码的{username}:{password}字符串。比如用户名/密码分别为 admin/secr