目录
课程名称:Spring Security+OAuth2 精讲,打造企业级认证与授权
课程章节:第1章 关于这门课,你需要知道的
课程讲师:接灰的电子产品
学习目标
-
能够知道认证授权的重要性
-
能够知道课程的学习路线和课程目录
-
能够知道课程的技术选型和学习课程所需的预备知识
-
能够配置IDEA热启动
1.课程简介
1.1 这是一门什么课?
认证-你是谁
授权-你能干什么?
1.2 认证和授权的重要性
普遍性 → 几乎所有企业级业务场景中都有各种各样的权限需求
必要性 → 认证和授权作为整体架构的基础建设部分,直接决定了产品的安全性,稳定性
可持续性 → 道高一尺,魔高一丈。针对系统的攻击随着技术和机器性能的发展也不断进步,同时也催生了不断进化的安全技术和策略
面试必考 → 一般来说对于后端技术人员面试中,安全几乎是必不可少的一个考点
1.3 为什么是Spring Security?
-
对比竞争框架的流行度高。
-
Spring全家桶成员。
-
丰富且全面的安全相关特性,业务隔离好。
1.4 学习路线
单体
登录注册
多因子认证
JWT的签发
角色/权限的数据库存储
用户管理
角色管理
权限管理
角色分级的加载
LDAP配置
方法和URL安全配置
微服务
实现授权服务器
实现资源服务器
实现客户端单点登录
Github登录
微博登录
QQ登录
授权方式管理
1.5 课程章节安排
-
第一章
-
课程介绍
-
环境配首
-
第二章
-
认证和授权
-
过滤器和过滤器链
-
HTTP请求的结构
-
HTTP Basic Auth
-
安全配置
-
定制登录页
-
csrf,等的设置
-
登录成功及失败的处理
-
自定义Filter
-
第三章
-
密码进化史
-
密码编码器
-
验证注解和自定义验证注解
-
密码的验证和自定义注解和验证器
-
验证消息的国际化
-
异常的处理多个安全配置共存
-
第四章
-
核心组件- SecurityContext
-
UserDetails、 UserDetailsService
-
定制化数据库
-
UserDetails和GrantedAuthority
-
环境和环境变量
-
自动化测试
-
第五章
-
认证流程和源码解析
-
LDAP配置和多认证源
-
JWT的概念和创建以及解析
-
访问令牌和刷新令牌
-
创建JwtFilter
-
实现登录接口和刷新令牌接口
-
完成注册接口
-
第六章
-
多因子认证和TOTP云服务和多因子认证流程
-
短信发送服务Email发送服务
-
多因子认证整体逻辑
-
使用Redis 缓存选择发送方式和验证
-
前后端的多工程配置
-
CORS跨域处理
-
第七章
-
授权机制
-
角色和权限的概念
-
Spring Security授权
-
使用注解完成简单角色授权
-
在注解中使用权限表达式
-
角色分级
-
划分权限
-
自定义权限表达式
-
高级权限表达式的用法
-
第八章
-
Oauth2.0简介
-
常用的授权模式和流程
-
授权和资源服务器的概念
-
实授权服务器和资源服务器
-
资源服务器验证JWT Claims
-
第三方登录
-
Github登录,微博登录
-
单点登录SSO
-
单页应用如何在OAuth2模式下工作
-
第九章
-
和keycloak集成
1.6 学习效果
-
独立设计一个安全的单体应用
-
为微服务开发UAA 或集成第三方
-
前后端配合时常见的问题处理
1.7 课程代码环境
使用最新技术栈,面向未来
-
聚焦 Spring Security 5.x核心功能
-
后端采用Java 11和Spring Boot 2.x,面向未来
1.8 后端预备知识
-
Java编程语言和 Spring框架
-
熟悉Spring和Spring Boot
-
熟悉Java函数风格编程方式(Lamda)
-
熟练使用MySQL
2.课程更新简介
-
Spring Boot:
-
-2.3 ->2.7
-
·配置文件等修改
-
Spring Security
-
·5.2 ->5.7
-
·使用Bean简化原来的继承类实现抽象方法
-
Spring Authorization
-
·仍然处于孵化期
-
·课程使用0.4-M1版本,未来1.0版本Server基于Spring Boot 3.0和Java 17
3.环境配置
3.1 前端环境搭建
Node -> NPM/CNPM -> vue CLI
安装node.js的目的是使用npm管理项目依赖的软件包
由于网络环境的原因,cnpm 作为替代的包管理工具
使用Vue CLI 使我们无须理会复杂的配置,更专注Vue.js
3.2 后端环境搭建
Java SDK -> Maven
OpenJDK 11
使用Maven进行项目依赖和工程管理
使用Intellij IDEA进行开发
3.3 IDEA的扩展
环境变量
模板工具
IDEA 的热启动配置
3.4 VScode配置
4 工程结构
前五章只有一个工程。通过接口形式写代码。
第六章会增加前端
第八章 增加todos-service和web-client
第九章 使用KeyCloak