认证模块将使用 keycloak 替代
mcloud-oauth-server
基于Spring OAuth2,实现了OAuth2认证服务器以及资源服务器,并以 Restful API 的方式提供了OAuth 客户端以及用户的管理功能。
项目中主要使用了以下技术:
OAuth2认证流程可参考博客 理解OAuth 2.0 ,此处不再赘述。
认证服务器 使用Spring Security 结合 JWT Token 实现认证服务,提供了功能完整的 OAuth2 认证服务器。
资源服务器 实现了以下两种方式进行OAuth2 相关资源的管理
http://localhost:8043/uaa/swagger-ui.html
用户端
管理员
创建数据库
请使用 mysql 客户端或是其他你喜欢的工具创建数据库,默认的数据库名称为 db_oauth
使用flywaydb初始化数据库
修改 pom.xml
中 flywaydb 插件的数据库名,用户名以及密码:
pom.xml
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>4.2.0</version>
<configuration>
<user>root</user>
<password>你的数据库密码</password>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost:3306/数据库名称</url>
</configuration>
</plugin>
修改相关配置之后,请在项目根目录下执行maven命令:
mvn flyway:clean flyway:migrate
修改项目的数据库配置:
application.yml
spring:
datasource:
url: jdbc:mysql://localhost/数据库名称
username: 用户
password: 密码
driver-class-name: com.mysql.jdbc.Driver
启动OAuth2认证服务
所有准备工作已经完成,现在,让我们启动服务,在项目根目录下运行maven命令:
mvn clean install
mvn spring-boot:run
如果你使用的是 Idea 或 eclipse 开发,请直接运行 OAuthServerApplication 这个方法即可启动服务。
访问地址
http://localhost:8043/uaa/swagger-ui.html
前提:
了解Postman并且安装了 Chrome 的 Postman 插件
首先自然是启动服务,然后我们在Postman中请求 http://localhost:8043/uaa/api/v1/users/me
,此时因为还未进行认证,所以服务器返回的是 401
的状态码:
现在我们通过Postman 自带的OAuth认证功能进行认证:
相关项:
默认用户:
当我们授权之后,就可以得到 access_token,此时选中并点击 Use Token,然后我们再次访问之前无权限的 API
服务器已成功返回 200
的状态码,并返回了用户列表。
keystore.jks
(非常重要) ,否则会导致安全风险,keystore.jks
可使用jdk 工具生成,也可自行使用其他工具生成非对称密钥对。如果你有任何好的意见以及建议,请提 Issue。
如果你觉得此项目对你有所帮助,欢迎点赞支持。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型