spring-oauth-server 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
spring-oauth-server 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
spring-oauth-server 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 GPL
开发语言 Java
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 monkeyk7
适用人群 未知
收录时间 2015-04-07

软件简介

spring-oauth-server

Spring与Oauth2的整合示例

项目用Maven管理

使用的技术与版本号

  1. Spring (3.1.1.RELEASE)

  2. Spring Security (3.1.0.RELEASE)

  3. MyBatis (3.2.1)

  4. spring-security-oauth2 (1.0.5.RELEASE)


客户端demo项目请访问 spring-oauth-client


如何使用?

  1. 项目是Maven管理的, 需要本地安装maven(开发用的maven版本号为3.1.0), 还有MySql(开发用的mysql版本号为5.5)

  2. 下载(或clone)项目到本地

  3. 创建MySQL数据库(如数据库名oauth2), 并运行相应的SQL脚本(脚本文件位于others/database目录),
      运行脚本的顺序: initial_db.ddl -> oauth.ddl -> initial_data.ddl

  4. 修改spring-oauth-server.properties(位于src/resources目录)中的数据库连接信息(包括username, password等)

  5. 将本地项目导入到IDE(如Intellij IDEA)中,配置Tomcat(或类似的servelt运行服务器), 并启动Tomcat(默认端口为8080)
      另: 也可通过maven package命令将项目编译为war文件(spring-oauth-server.war),         将war放在Tomcat中并启动(注意: 这种方式需要将spring-oauth-server.properties加入到classpath中并正确配置数据库连接信息).

  6. 参考oauth_test.txt(位于others目录)的内容并测试之(也可在浏览器中访问相应的地址,如: http://localhost:8080/spring-oauth-server).


帮助与改进

  1. 与该项目相关的博客请访问 http://blog.csdn.net/monkeyking1987/article/details/16828059

  2. 如果在使用过程中遇到特殊的问题(如:如何将oauth_code存入数据库),请访问项目的 Wiki附件.
    我会把大家反馈的问题解决办法添加在这里.
    若在这两个地方没有找到解决办法的, 欢迎发邮件到shengzhao@shengzhaoli.com一起讨论.

  3. 如果在使用项目的过程中发现任何的BUG或者更好的提议, 建议将其提交到项目的 Issues 中, 我会一直关注并不断改进项目.


功能扩展

  1. oauth_code存入数据库的配置,  请下载文件 oauth_code存入数据库的配置.jpg

  2. 改变token过期的时间的配置, 请下载文件改变token过期的时间的配置.jpg

  3. 自定义 grant_type, 默认情况支持的grant_type包括 [password,authorization_code,refresh_token,implicit], 若不需要其中的某些grant_type,        则可以修改 oauth_client_details 表中的 authorized_grant_types 字段的值;        
           若想把整个Oauth服务修改来只支持某些grant_type, 请修改 security.xml文件中的        oauth2:authorization-server 中的内容,将对应的 grant_type 注释或删掉即可

  4. 如何刷新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"}

               
               若需要刷新获取新的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

               
               注意: refresh_token 参数值必须与登录成功后获取的 refresh_token 一致, 且grant_type = refresh_token            
               另: 刷新token 需要 ClientDetails 支持 refresh_token 类型的 grant_type (默认是支持的)


更多资源

以下是在学习工作中收集的更多关于Oauth的资源,对深入理解与运用Oauth有帮助

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
发表了资讯
2023/11/01 23:53

spring-oauth-server v3.0.0 发布,全新升级到 OAuth2.1&OIDC1.0

在spring-oauth-serverg开源10周年之际,我们发布了全新的大版本v3.0.0,从底层架构到整体的协议支持都做了大范围的升级与更新,更好的满足业务需要与跟上技术演进。 此版本升级更新的主要内容如下: 底层安全架构升级:jdk升级17(相比jdk8性能与稳定性有大提升), spring6.x, springboot3.x, thymeleaf替换servlet/jsp 全面升级支持 OAuth2.1协议与 OIDC1.0协议(同时弃用了旧的grant_type, 如 password模式) 构建包由war换成jar...

0
5
发表了资讯
2022/05/01 00:22

spring-oauth-server 2.1.0 发布,增加更多灵活场景

spring-oauth-server在快两年后的2022-05-01更新发布了2.1.0版本,spring-oauth-server是Spring与OAuth2整合示例,并扩展提供更多特性与场景。 此版本主要增加了JWT的支持,具体内容如下: 升级access_token, refresh_token支持JWT(Json Web Token), 提高性能 增加灵活性配置参数sos.reuse.refresh-token可实时延长token时效(类似session机制) 升级spring-security oauth2版本为2.3.8.RELEASE, 增加spring-security-jwt版本1.1...

0
18
发表了资讯
2020/06/06 09:56

spring-oauth-server 2.0.2 发布,扩展 OAuth2 Server

spring-oauth-server在2020-06-04更新发布了2.0.2版本,spring-oauth-server是Spring与Oauth2整合示例。 此版本更新内容如下: 1.Fix CVE-2019-3778, use spring-security-oauth 2.3.5.RELEASE 2.解决数据库多条 access_token问题,增加唯一约束 3.升级Spring-Boot版本为2.1.4.RELEASE 2.0.2版本release链接: https://gitee.com/shengzhao/spring-oauth-server/releases...

0
21
发表了资讯
2019/08/04 21:23

spring-oauth-server 2.0.1 发布,扩展 OAuth2 Server

spring-oauth-server在2019-08-04更新发布了2.0.1版本,spring-oauth-server是Spring与Oauth2整合示例。 此版本是使用Spring Boot重构实现后的第2个发布版本(2.0.0是第1个),更新内容如下: 将项目用视频方式讲解出来,更直观学习与掌握,视频链接http://list.youku.com/albumlist/show/id_51900110.html(不断更新中) Fix issue #IJO9R /oauth/rest_token 接口 client_secret字段没有校验 Use spring-boot version to : 2.0...

1
20
发表了资讯
2018/04/21 17:26

spring-oauth-server 2.0.0 发布,基于 Spring-Boot 2.0

经过一年多的时间后,我们发布了 spring-oauth-server 2.0.0版本. 使用Spring-Boot 2.0版本重构, 进入模块化,零配置时代. 更符合技术发展与实际需要. 相比之前的版本(1.0及之前版本), 更新如下: 全新的 Spring-Boot风格 ClientDetails中的 client_secret 字段加密保存 密码加密方式由MD5变成 BCrypt 增加CSRF机制支持 resourceId变为可选(但建议使用固定的resourceId) https://gitee.com/shengzhao/spring-oauth-server/tree/2....

5
31
发表了资讯
2016/10/13 00:00

spring-oauth-server 0.6 发布

spring-oauth-server 0.6版本发布,该版本主要增加有缓存的支持, 具体的功能更新如下: (150) - 修改OAUTH错误时返回JSON数据 (151) - 数据添加Ehcache缓存支持 (158) - 对配置,代码必要的地方添加注释,方便理解 添加OIDC协议文档 OIDC是基于OAuth2的下一代身份认证授权协议,在0.6版本中添加了对OIDC1.0版本协议文档,同时在进行中文的翻译,具体请访问 https://andaily.com/blog/?p=440 spring-oauth-server 是一个整合OAuth2与S...

0
28
发表了资讯
2016/06/02 00:00

spring-oauth-server 0.5 发布,OAuth2 与 Spring Security 安全应用整合

spring-oauth-server 0.5版本发布,该版本的功能更新如下: (144) - Add MongoDB branch (143) - Add project API document (139) - User Overview/ user add/archive (138) - OAuth Restful API (118) - Add java-config(零配置) 的支持, 以及启用 新的注解. spring-oauth-server 是一个整合OAuth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-securit...

1
43
发表了资讯
2016/05/18 00:00

OIDC–基于 OAuth2 的下一代身份认证授权协议

OIDC(OpenID Connect),下一代的身份认证授权协议;当前发布版本1.0; OIDC是基于OAuth2+OpenID整合的新的认证授权协议;OAuth2是一个授权(authorization)的开放协议, 在全世界得到广泛使用,但在实际使用中,OAuth2只解决了授权问题,没有实现认证部分,往往需要添加额外的API来实现认证;而OpenID呢,是一个认证(authentication )的协议,二者在实际使用过程中都有其局限性; 综合二者,即是OIDC;通过OIDC,既能有OAUTH2的功...

6
73
发表了资讯
2016/04/15 00:00

spring-oauth-server 增加 java config 版本

在spring-oauth-server的 0.5 版本中, 我们增加了 java config 版本, 提供对config的支持. 目前java config 处于开发中, 可访问 http://git.oschina.net/shengzhao/spring-oauth-server/tree/config/查看最新进展. spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的开源项目. s...

0
22
发表了资讯
2016/04/15 00:00

spring-oauth-server 增加 MongoDB 版本

在spring-oauth-server的 0.5 版本中, 我们增加了 MongoDB 版本, 提供对MongoDB的支持, 替换MySQL. 请访问 http://git.oschina.net/shengzhao/spring-oauth-server/tree/mongodb/ 查看更多信息. spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的开源项目. spring-oauth-server...

0
14
发表了资讯
2016/01/02 00:00

spring-oauth-server 0.4 发布, Oauth2 与 Spring Security 安全应用整合

在spring-oauth-server 0.4-beta版本从2015-11-18发布一个多月后, 0.4版本正式发布. 在这期间主要测试各项新增功能. spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的开源项目. 0.4版本的更新的内容如下: (109) – 升级 spring-security-oauth2 的版本到2.0.7.RELEASE, 旧版本...

0
45
发表了资讯
2015/11/18 00:00

spring-oauth-server 0.4-beta 发布, Oauth2 与 Spring Security 安全应用整合

spring-oauth-server 0.4-beta版本发布, spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的开源项目. 0.4-beta版本有重大的更新, 主要在更新了依赖的各类版本, 更新的内容如下: (109) – 升级 spring-security-oauth2 的版本到2.0.7.RELEASE, 旧版本为1.0.5 (113) – Upgrade ...

3
42
发表了资讯
2015/06/07 00:00

spring-oauth-server 0.3 发布, Oauth2 与 Spring Security 安全应用整合

spring-oauth-server 0.3版本发布, spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的示例项目. 0.3 版本是项目创建后的第一个重大版本, 更新内容如下: #74 – oauth mysql ddl add create_time, default is now() #75 – Add user information API, for spring-oauth-client ...

3
26
发表了资讯
2015/05/06 00:00

spring-oauth-server 0.2 发布, Oauth2与Spring Security安全应用整合

spring-oauth-server 0.2发布, spring-oauth-server 是一个整合Oauth2与Spring Security的安全应用项目,是从https://github.com/spring-projects/spring-security-oauth/tree/master/spring-security-oauth2扩展的符合实际项目需要的示例项目,特点如下: 将Spring MVC配置与Oauth的配置分开, 互不影响 将用户信息存放数据库 将ClientDetails数据存放于数据库,并能对数据进行管理 扩展ClientDetails基本属性, 添加trusted属性,用于...

0
59
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
166 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部