这是「Spring Security系列」的第一篇
为什么我要做这一系列文章? 在应用开发流程中安全是不可回避的问题,这就需要我们去了解如何实现应用安全管控;同时Spring Security作为Spring全家桶也有着clean code
的特性,这有助于我们从更抽象的层面去了解安全认证体系。
前置知识
如果你想要更好地学习Spring Security,而不是Ctrl+C/Ctrl+V
,那你就需要问问自己是否具备一下知识:
- Java语言基础
- Spring Framework基础(了解其思想即可)
概述
Spring Security是一个功能强大和高度可定制的身份验证和访问控制框架,具体项目信息可以访问Spring Securtiy官网
而看到上面,大家肯定会问:什么是身份验证?什么是访问控制?
这是个好问题,也是一个简单的问题;用比较直白的方式去解释的话,身份验证即是告诉服务端「你是谁?」,而访问控制则是「你能做什么?」
看到这里,想必大家也就了解Spring Security的职责所在,也就会好奇我会怎样讲述Spring Security~
而我会从「身份验证」的视角解读,讲述Spring Security如何实现身份验证;毕竟访问控制的核心在于服务端资源和用户访问权限的匹配
Spring Security的核心接口是HttpSecurity
,接口中描述了身份认证方案包括五种:
- formLogin认证
- httpBasic认证
- openidLogin认证
- saml2Login认证
- oauth2Login认证
教程目标
- 编写简单Spring Security应用
- 基于表单的formLogin认证
- 基于OAuth的API认证
- 核心接口解读