# 实验四 基于Spring Security码云OAuth2认证的实验仓库 **Repository Path**: logicsi/spring-security-gitee-experiment-4 ## Basic Information - **Project Name**: 实验四 基于Spring Security码云OAuth2认证的实验仓库 - **Description**: 实验四 基于Spring Security码云OAuth2认证的实验仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 71 - **Created**: 2021-05-28 - **Last Updated**: 2021-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 实验四 基于Spring Security码云OAuth2认证的实验仓库 ## 一、实验目的 1. 掌握Spring Boot的自动配置原理; 2. 掌握Spring框架动态注册Bean的原理; 3. 掌握自动生成元数据文件。 4. 掌握spring框架的事件模型。 ## 二、实验环境 1. JDK 1.8或更高版本 2. Maven 3.6+ 3. IntelliJ IDEA ## 三、实验任务 ##### 1. 登录码云,fork实验四的作业仓库 仓库地址为:https://gitee.com/logicsi/spring-security-gitee-experiment-4 ##### 2. 根据下面的步骤填充代码,运行并测试成功: 1)OAuth2基本认证流程。 ![image-20210601110824363](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601110824363.png) 2)步骤一:创建接入码云的应用。 回调地址是:http://localhost:8080/login/oauth2/code/gitee ![image-20210601111029470](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111029470.png) ![image-20210601111057108](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111057108.png) 3) 步骤二:编写重定向过滤器的业务逻辑。 ​ 当用户访问/oauth/gitee时,本重定向过滤器请求,并将用户重定向到码云三方认证页面上。 ![image-20210601111337001](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111337001.png) 4)步骤三:使用码云access_token API向码云认证服务器发送POST请求获取access_token。 ![image-20210601111607694](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111607694.png) 5)步骤四:使用码云API获取授权用户的资料。 ![image-20210601111701649](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111701649.png) 6)步骤五:把自定义的两个Filter加进安全过滤链。 ​ 注意:不要添加自定义过滤器放置在SecurityContextPersistenceFilter前面。 ![image-20210601111921176](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601111921176.png) 7)步骤六:把我们自定义的SecurityConfigurer应用到安全过滤链。 ![image-20210601112124240](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210601112124240.png) 8)步骤七:改造/user接口,返回码云用户资料给前端;改造user.ftlh模板用于显示用户资料。 ![image-20210607145715861](https://gitee.com/logicsi/pic-bed/raw/master/img/image-20210607145715861.png)