spring-oauth-server

Spring与Oauth2整合示例
授权协议 GPL
开发语言 Java
所属分类 Web应用开发、 OAuth开发包
软件类型 开源软件
地区 国产
投 递 者 有权
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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项目中的oauth.ddl文件(位于/others/database目录)中的表字及段进行说明, 内容包括字段说明与使用场合 表名 字段名 字段说明 oauth_client_details client_id 主键,必须唯一,不能为空.  用于唯一标识每一个客户端(client); 在注册时必须填写(也可由服务端自动生成).  对于不同的grant

  • 以下对spring-oauth-server项目中的oauth.ddl文件(位于/others/database目录)中的表字及段进行说明, 内容包括字段说明与使用场合 表名 字段名 字段说明 oauth_client_details client_id 主键,必须唯一,不能为空. 用于唯一标识每一个客户端(client); 在注册时必须填写(也可由服务端自动生成). 对于不同的grant_typ

  • spring-cloud-starter-security和spring-cloud-starter-oauth2 之前学过spring-security,最近又在学习spring-cloud-starter-security和spring-cloud-starter-oauth2, 脑子里顿时冒出一个问题: 之前学的spring-security和最近学的spring-cloud-starter

  • 前言 Spring Security 提供了对 OAuth2 的支持,该包下提供 4 个模块: oauth2-core,基础核心模块 oauth2-jose,JOSE:Javascript Object Signing and Encryption,对应 JWS JWE 的实现 oauth2-client,oauth2 client 组件的实现 oauth2-resource-server,oau

  • http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html https://gitee.com/shengzhao/spring-oauth-server

  • 授权服务器版本:0.2.0-0.3.1 OAuth2AuthorizationService官方目前实现了InMemoryOAuth2AuthorizationService和JdbcOAuth2AuthorizationService,在微服务场景下,需要使用redis存储认证对象,官方未提供redis的相关实现,分析官方内部实现逻辑,有hasToken部分代码实现不太合理,导致重写支持Red

  • 表名 字段名 字段说明 oauth_client_details client_id 主键,必须唯一,不能为空.  用于唯一标识每一个客户端(client); 在注册时必须填写(也可由服务端自动生成).  对于不同的grant_type,该字段都是必须的. 在实际应用中的另一个名称叫appKey,与client_id是同一个概念. resource_ids 客户端所能访问的资源id集合,多个资源时

  • 新建项目,不管怎么弄spring-cloud-starter-oauth2依赖一直引入不了,mmp,记录一下,下面给出pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i

  • 原文地址:http://www.oschina.net/p/spring-oauth-server?fromerr=vpTctDBF 转载于:https://www.cnblogs.com/longshiyVip/p/5052657.html

  • 1、发布spring-oauth-server应用 1.1、创建案例数据库oauth2,root/Abc1234% 1.2、执行脚本,创建数据结构和demo数据        init_db.sql (user_用户、user_privillage用户权限)        oauth.sql(oauth_client_details第三方应用注册、oauth_code授权码表、oauth_acce

 相关资料
  • 本文向大家介绍Spring整合websocket整合应用示例(下),包括了Spring整合websocket整合应用示例(下)的使用技巧和注意事项,需要的朋友参考一下 在Spring整合websocket整合应用示例(上)文章中,我们已经实现了websocket,但还有一个核心的业务实现类没有实现,这里我们就实现这个业务核心类,因为老夫参与的这个系统使用websocket发送消息,所以其实现就是如

  • 在尝试将我们的web应用程序与Spring Oauth2集成时遇到了问题 endpoint/oauth/token被映射为GET和POST方法 访问时间:https://192.168.70.19:8072/oauth/token?grant_type=password&client_id=7ca42ea39288ec73212716fc6a51b8a2&username=admin&passwo

  • 本文向大家介绍spring boot整合hessian的示例,包括了spring boot整合hessian的示例的使用技巧和注意事项,需要的朋友参考一下 首先添加hessian依赖 服务端:HessianServer,端口号:8090 客户端代码:HessianClient,同服务端一样引入hessian依赖,端口号:8092 访问地址即可:http://localhost:8092/test

  • 本文向大家介绍Spring Boot 整合mybatis 与 swagger2,包括了Spring Boot 整合mybatis 与 swagger2的使用技巧和注意事项,需要的朋友参考一下 之前使用springMVC+spring+mybatis,总是被一些繁琐的xml配置,有时候如果配置出错,还要检查各种xml配置,偶然接触到了spring boot 后发现搭建一个web项目真的是1分钟的事情

  • 当我使用Spring云网关时,我面临一个问题 如果有依赖项,则直接或递归地调用spring boot starter tomcat 它将无法工作,因为它将启动嵌入式tomcat服务器,而不是spring cloud gateway使用的netty服务器 我开始通过排除这种依赖性来解决这个问题 Spring云端网关工作成功 但有时我想使用spring-cloud-starter-oauth2来使用@

  • 本文向大家介绍Spring整合WebSocket应用示例(上),包括了Spring整合WebSocket应用示例(上)的使用技巧和注意事项,需要的朋友参考一下 以下教程是小编在参与开发公司的一个crm系统,整理些相关资料,在该系统中有很多消息推送功能,在其中用到了websocket技术。下面小编整理分享到呐喊教程平台供大家参考 1. maven依赖 2. spring-servlet的配置 其中,

  • 本文向大家介绍Spring Boot整合Spring Security的示例代码,包括了Spring Boot整合Spring Security的示例代码的使用技巧和注意事项,需要的朋友参考一下 本文讲述Spring Boot整合Spring Security在方法上使用注解实现权限控制,使用自定义UserDetailService,从MySQL中加载用户信息。使用Security自带的MD5加密

  • 本文向大家介绍springBoot 与neo4j的简单整合示例,包括了springBoot 与neo4j的简单整合示例的使用技巧和注意事项,需要的朋友参考一下 Neo4j简介 Neo4j是基于java语言实现的世界领先的图形数据库, 是一个高性能的图形存储,具有成熟和强大的数据库所需的所有功能,如友好的查询语言(Cypher)和ACID事务。对于许多应用程序,与关系数据库相比,Neo4j提供了数量