spring-oauth-server Spring与Oauth2整合示例

我要开发同款
匿名用户2015年04月07日
92阅读

技术信息

授权协议
GPL

作品详情

sprig-oauth-server

Sprig与Oauth2的整合示例

项目用Mave管理

使用的技术与版本号

Sprig(3.1.1.RELEASE)

SprigSecurity(3.1.0.RELEASE)

MyBatis(3.2.1)

sprig-security-oauth2(1.0.5.RELEASE)

客户端demo项目请访问sprig-oauth-cliet

如何使用?

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

下载(或cloe)项目到本地

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

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

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

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

帮助与改进

与该项目相关的博客请访问https://blog.csd.et/mokeykig1987/article/details/16828059

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

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

功能扩展

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

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

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

如何刷新access_toke(refresh_toke),在通过客户端(如移动设备)登录成功后返回的数据如下      

{"access_toke":"3420d0e0-ed77-45e1-8370-2b55af0a62e8","toke_type":"bearer","refresh_toke":"b36f4978-a172-4aa8-af89-60f58abe3ba1","expires_i":43199,"scope":"read write"}

            若需要刷新获取新的toke(一般在expires_i有效期时间快到时),请求的URL类似如下            

https://localhost:8080/oauth/toke?cliet_id=mobile-cliet&cliet_secret=mobile&grat_type=refresh_toke&refresh_toke=b36f4978-a172-4aa8-af89-60f58abe3ba1

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

更多资源

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

OAUTH2核心参数说明,重点介绍了grat_type与respose_type以及示例

OAuth2flows,详细介绍Oauth2的流程,各类错误发生时的响应

OAuth2开发人员指南(Sprigsecurityoauth2),翻译OAuth2DevelopersGuide(sprigsecurityoauth2)

功能介绍

spring-oauth-server Spring与Oauth2的整合示例 项目用Maven管理 使用的技术与版本号 Spring (3.1.1.RELEASE) Spring Securit...

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论