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有帮助

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

发布于 2016-10-14 00:00:48 | 196 次阅读

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的

发布于 2016-06-01 23:54:37 | 246 次阅读

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

发布于 2016-04-14 23:31:25 | 143 次阅读

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-projec

发布于 2016-04-14 23:21:22 | 162 次阅读


Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务