diff --git a/README.md b/README.md index ec394ef..1ec021a 100644 --- a/README.md +++ b/README.md @@ -45,12 +45,12 @@ Base on Spring-Boot
SpringOauthServerApplication.java
进行访问;或配置Tomcat(或类似的servlet运行服务器), 并启动Tomcat(默认端口为8080);
+ 运行脚本的顺序: initial_db.ddl -> oauth.ddl -> initial_data.ddl
+
+4. 修改application.properties(位于src/main/resources目录)中的数据库连接信息(包括username, password等)
+
+5. 将本地项目导入到IDE(如Intellij IDEA)中, 可直接运行SpringOauthServerApplication.java
进行访问;或配置Tomcat(或类似的servlet运行服务器), 并启动Tomcat(默认端口为8080);
java -jar
启动访问.
java -jar spring-oauth-server.war
启动, 则需要使用参数spring.config.location指定配置文件,
- 如:java -jar spring-oauth-server.war --spring.config.location=xxx.properties
- java -jar spring-oauth-server.jar
启动, 建议使用参数spring.config.location指定配置文件,
+ 如:java -jar spring-oauth-server.jar --spring.config.location=xxx.properties
+
+6. 参考oauth_test.txt(位于others目录)的内容并测试之(也可在浏览器中访问相应的地址,如: http://localhost:8080/ 在界面上操作).
+
+
authorization_code
-- 授权码模式(即先登录获取code,再获取token)password
-- 密码模式(将用户名,密码传过去,直接获取token)authorization_code + PKCE
-- 授权码模式+PKCE (即先登录获取code, 请求时增加参数code_challenge与code_challenge_method; 再获取token,增加参数code_verifier)password
-- 密码模式(将用户名,密码传过去,直接获取token) OAuth2.1不推荐使用refresh_token
-- 刷新access_tokenimplicit
-- 简化模式(在redirect_uri 的Hash传递token; Auth客户端运行在浏览器中,如JS,Flash)device_code
-- 适用于各类无输入键盘的物联网智能设备进行认证授权, 通过类似'扫码登录'形式完成整个流程 OAuth2.1新增client_credentials
-- 客户端模式(无用户,用户向客户端注册,然后客户端以自己的名义向'服务端'获取资源)- 与该项目相关的博客请访问 http://blog.csdn.net/monkeyking1987/article/details/16828059 + 与该项目相关的博客请访问 https://blog.csdn.net/monkeyking1987/article/details/16828059
改变token过期的时间的配置
, 请下载文件改变token过期的时间的配置.jpg
自定义 grant_type
, 默认情况支持的grant_type包括 [password,authorization_code,refresh_token,implicit], 若不需要其中的某些grant_type,
+ 自定义 grant_type
, 默认情况支持的grant_type包括 [password,authorization_code,refresh_token,device_code], 若不需要其中的某些grant_type,
则可以修改 oauth_client_details 表中的 authorized_grant_types 字段的值;
- 如何刷新access_token(refresh_token)
, 在通过客户端(如移动设备)登录成功后返回的数据如下
{"access_token":"3420d0e0-ed77-45e1-8370-2b55af0a62e8","token_type":"bearer","refresh_token":"b36f4978-a172-4aa8-af89-60f58abe3ba1","expires_in":43199,"scope":"read write"} +{"access_token":"eyJraWQiOiJteW9pZGMta2V5aWQiLCJhbGciOiJSUzI1...","token_type":"bearer","refresh_token":"UCFNxUj4ytr241KzwJJgnMno1RfmoLs0GKVxNWPjW5VZ7d4U4YsDM7...","expires_in":43199,"scope":"openid"}
若需要刷新获取新的token(一般在 expires_in 有效期时间快到时), 请求的URL类似如下
-http://localhost:8080/oauth/token?client_id=mobile-client&client_secret=mobile&grant_type=refresh_token&refresh_token=b36f4978-a172-4aa8-af89-60f58abe3ba1 -+http://localhost:8080/oauth2/token?client_id=mobile-client&client_secret=mobile&grant_type=refresh_token&refresh_token=UCFNxUj4ytr241KzwJJgnMno1RfmoLs0GKVxNWPjW5VZ7
注意: refresh_token 参数值必须与登录成功后获取的 refresh_token 一致, 且grant_type = refresh_token
@@ -203,14 +192,26 @@ config-redis
- Version: 2.1.1 [pending]
+ Version: 3.0.0 [pending]
+
+ Date: 2023-10-10 / ---
+
底层安全架构升级:jdk升级17, spring6.x, springboot3.x, thymeleaf替换servlet/jsp
全面升级支持 OAuth2.1协议与 OIDC1.x协议
构建包由war换成jar, SQL相应调整
升级替换spring-security-oauth2, 详见背景说明
+ Version: 2.1.1 [canceled]
Date: 2022-05-05 / ---
尝试升级替换spring-security-oauth2, 详见背景说明
@@ -376,7 +377,7 @@ config-redis
在0.3版本中添加了db_table_description.html
文件(位于/others目录), 用来说明数据库脚本文件oauth.ddl
中各表,各字段的用途及使用场合.
- 也可在线访问http://andaily.com/spring-oauth-server/db_table_description.html.
+ 也可在线访问https://andaily.com/spring-oauth-server/db_table_description.html.
2019-08-04 发布 2.0.1 版本
2020-06-04 发布 2.0.2 版本
2022-05-01 发布 2.1.0 版本
2023-10-10 开发全新大版本 3.0.0 开发
- RFC 6749 - The OAuth 2.0 Authorization Framework, OAuth2.0协议(英文) + RFC 6749 - The OAuth 2.0 Authorization Framework, OAuth2.0协议(英文)
- OAuth 2.0 — OAuth, OAuth2.0官方网站 + OAuth 2.0 — OAuth, OAuth2.0官方网站
- OAuth 2 开发人员指南(Spring security oauth2), 翻译OAuth 2 Developers Guide(spring security oauth2) + OAuth 2 开发人员指南(Spring security oauth2), 翻译OAuth 2 Developers Guide(spring security oauth2)
- 理解OAuth 2.0, 介绍OAuth2各类grant_type的使用 + 理解OAuth 2.0, 介绍OAuth2各类grant_type的使用
- OAuth2:隐式授权(Implicit Grant)类型的开放授权, 介绍grant_type='implicit'模式 + OAuth2:隐式授权(Implicit Grant)类型的开放授权, 介绍grant_type='implicit'模式
- Apache Oltu, Java版的 OAuth2参考实现, 建议去了解了解 + Apache Oltu, Java版的 OAuth2参考实现, 建议去了解了解
- 在spring-oauth-server中将AccessToken存入Redis的配置 + 在spring-oauth-server中将AccessToken存入Redis的配置
- OAuth2中 access_token,refresh_token的各类配置与使用场景FAQ + OAuth2中 access_token,refresh_token的各类配置与使用场景FAQ
- 关注更多开源项目请访问 http://andaily.com/my_projects.html + 关注更多开源项目请访问 https://andaily.com/my_projects.html