# spring-security-oauth-study
**Repository Path**: sssdeku/spring-security-oauth-study
## Basic Information
- **Project Name**: spring-security-oauth-study
- **Description**: spring security + auth2.0 +jwt 练手项目
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 66
- **Created**: 2021-01-19
- **Last Updated**: 2022-05-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用手册
## change log
| tag version | change logs | date |
| --- | --- | --- |
| v6.0.0 | 1.扩展用户信息到jwt令牌
2.资源服务上下文保存和取出用户信息 | 2021-01-14 |
| v5.0.0 | 1.新增eureka注册中心服务register-server
2.新增网关服务gateway-server
3.修改资源服务,移除OAuth2.0以及JWT依赖和相关配置
4.实现初版分布式认证和鉴权功能 |2020-01-13|
| v4.0.0 | 1.使用jwt令牌功能
2.客户端信息保存到数据库,用户授权码保存到数据库3.新增common模块保存公共功能| 2020-01-11 |
| v3.0.0 | 1. 新增资源服务,可进行接口测试
2. 修改了auth-center/docs/sql/init.sql | 2020-01-10 |
| v2.0.0 | 实现自定义登陆页面、自定义授权页面 | 2021-01-07|
| v1.0.0 | 实现初版认证服务器,可进行接口测试
遗留问题:
1. 登录页面加载速度太慢
2. 授权页面太丑 | 2021-01-07 |
## 文章介绍
> [Spring Security OAuth2.0认证授权一:框架搭建和认证测试](https://blog.kdyzm.cn/post/24)
>
> [Spring Security OAuth2.0认证授权二:搭建资源服务](https://blog.kdyzm.cn/post/25)
>
> [Spring Security OAuth2.0认证授权三:使用JWT令牌](https://blog.kdyzm.cn/post/26)
>
> [Spring Security OAuth2.0认证授权四:分布式系统认证授权](https://blog.kdyzm.cn/post/30)
>
> [Spring Security OAuth2.0认证授权五:用户信息扩展到jwt](https://blog.kdyzm.cn/post/31)
## 项目介绍
### 1. 模块介绍
| 模块名 | 模块介绍 |
| --- | ---|
| [auth-server](auth-server) | 认证服务 |
| [resource-server](resource-server)| 资源服务|
| [register-server](register-server)| 注册中心服务|
| [gateway-server](gateway-server)| 网关服务 |
| [common](common) |公共模块,保存公共功能|
### 2.服务启动顺序
项目启动前务必先执行 [auth-server/docs/sql/init.sql](auth-server/docs/sql/init.sql) 脚本。
项目启动顺序:
1. register-server
2. gateway-server
3. auth-server
4. resource-server
### 3.项目测试方法
**第一步,获取token**
这里使用password模式直接获取token,POST请求如下接口:
[http://127.0.0.1:30000/oauth/token?client_id=c1&client_secret=secret&grant_type=password&username=zhangsan&password=123](http://127.0.0.1:30000/oauth/token?client_id=c1&client_secret=secret&grant_type=password&username=zhangsan&password=123)
即可获取token。
**第二步,访问资源**
通过网关请求资源服务的r1接口,GET请求如下接口:
[http://127.0.0.1:8761/r1](http://127.0.0.1:8761/r1)
需要带上Header,key为`Authorization`,value格式如下:
``` text
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicmVzMSJdLCJ1c2VyX25hbWUiOiJ6aGFuZ3NhbiIsInNjb3BlIjpbIlJPTEVfQURNSU4iLCJST0xFX1VTRVIiLCJST0xFX0FQSSJdLCJleHAiOjE2MTAzNzI5MzUsImF1dGhvcml0aWVzIjpbInAxIiwicDIiXSwianRpIjoiOWQzMzRmZGMtOTcwZC00YmJkLWI2MmMtZDU4MDZkNTgzM2YwIiwiY2xpZW50X2lkIjoiYzEifQ.gZraRNeX-o_jKiH7XQgg3TlUQBpxUcXa2-qR_Treu8U
```
如果相应结果如下,则表示测试通过
```
访问资源r1
```
否则,会返回401状态码。