`
rensanning
  • 浏览: 3513738 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
Efef1dba-f7dd-3931-8a61-8e1c76c3e39f
使用Titanium Mo...
浏览量:37477
Bbab2146-6e1d-3c50-acd6-c8bae29e307d
Cordova 3.x入门...
浏览量:604288
C08766e7-8a33-3f9b-9155-654af05c3484
常用Java开源Libra...
浏览量:678021
77063fb3-0ee7-3bfa-9c72-2a0234ebf83e
搭建 CentOS 6 服...
浏览量:87242
E40e5e76-1f3b-398e-b6a6-dc9cfbb38156
Spring Boot 入...
浏览量:399799
Abe39461-b089-344f-99fa-cdfbddea0e18
基于Spring Secu...
浏览量:69060
66a41a70-fdf0-3dc9-aa31-19b7e8b24672
MQTT入门
浏览量:90463
社区版块
存档分类
最新评论

Spring Security OAuth2 Provider 之 第三方登录简单演示

 
阅读更多
为了测试,需要创建3个不同的Spring Boot应用如下:
  • spring-oauth2-client 客户端(端口:8080)
  • spring-oauth2-server Auth服务器(端口:8081)
  • spring-oauth2-resource Rest服务器(端口:8082)

版本
ScribeJava 4.1.2 + Spring Security OAuth2 2.0.12

ScribeJava 自身已经提供了很多OAuth开发平台的连接API,这里需要自定义测试Auth服务器的API。
Auth服务器和Rest服务器连接到相同的后台PostgreSQL数据库。

具体实现可以下载源代码查看。点击下载

相关文章:
Spring Security OAuth2 Provider 之 最小实现
Spring Security OAuth2 Provider 之 数据库存储
Spring Security OAuth2 Provider 之 第三方登录简单演示
Spring Security OAuth2 Provider 之 自定义开发
Spring Security OAuth2 Provider 之 整合JWT

过程如下:
(1)访问客户端首页 http://localhost:8080/

(2)点击signin链接 http://localhost:8080/signin

(3)signin处理中,经由ScribeJava跳转到Auth服务器端认证 http://localhost:8081/oauth/authorize?...
final OAuth20Service service = new ServiceBuilder(CLIENT_ID)
		.apiSecret(CLIENT_SECRET)
		.scope(SCOPE)
		.state(STATE)
		.callback(CALLBACK_URL)
		.responseType(RESPONSE_TYPE)
		.build(MyApi.instance());

final String authorizationUrl = service.getAuthorizationUrl();

response.sendRedirect(authorizationUrl);


(4)Auth服务器端输入用户名密码

(5)Auth服务器端授权

(6)Auth服务器端回调客户端,回传code值 http://localhost:8080/callback

(7)callback处理中,使用code值经由ScribeJava发送请求到Auth服务器端获取AccessToken http://localhost:8081/oauth/token?...
final OAuth20Service service = new ServiceBuilder(CLIENT_ID)
		.apiSecret(CLIENT_SECRET)
		.scope(SCOPE)
		.state(STATE)
		.callback(CALLBACK_URL)
		.build(MyApi.instance());

OAuth2AccessToken accessToken = service.getAccessToken(code);


(8)callback处理中,使用AccessToken经由ScribeJava发送请求到Rest服务器获取用户信息 http://localhost:8082/api/profile
final OAuth20Service service = new ServiceBuilder(CLIENT_ID)
		.apiSecret(CLIENT_SECRET)
		.scope(SCOPE)
		.state(STATE)
		.callback(CALLBACK_URL)
		.build(MyApi.instance());

final OAuthRequest oauthRequest = new OAuthRequest(Verb.GET, PROFILE_URL);
service.signRequest(accessToken, oauthRequest);
final Response resourceResponse = service.execute(oauthRequest);


(9)callback处理中,获取到用户信息后显示到客户端
JSONObject obj = new JSONObject(resourceResponse.getBody());
model.addAttribute("id", obj.getString("id"));
model.addAttribute("name", obj.getString("name"));
model.addAttribute("email", obj.getString("email"));
1
0
分享到:
评论
3 楼 IT小新 2017-10-26  
您好,博主,跳转到Auth服务器端输入用户名密码 这一步的时候,用户名跟密码是什么啊
2 楼 IT小新 2017-10-26  
您好,博主,数据库可否发一份?
1 楼 IT小新 2017-10-25  
您好博主,我是初次接触这个,能不能给说下您这项目的具体的访问流程啊。拜托了。确实很着急使用。

相关推荐

    oauth2-family-barrel:OAuth2全家桶项目。本项目演示了如何使用spring-boot,spring-security以及spring-security-oauth快速构建OAuth2服务框架体系

    oauth2-family-barrel OAuth2全家桶 什么是oauth2-family-barrel oauth2-family-barrel项目,即OAuth2全家桶项目。 本项演示了如何使用 以及 快速整合一套基于OAuth2协议的鉴权,授权服务中心,客户端以及遵循...

    授权服务器:Spring Boot OAuth 2.0和OpenID Connect身份提供者授权服务器

    提供一种简单的方法来设置和运行它(即无需查阅大量文档) 支持OAuth 2.x和OpenID Connect的最新规范和草案作为容器和支持容器提供重要: 该项目的目的是用于演示以及作为培训/讲习班的一部分。 还没有准备好用于...

    xmljava系统源码-simple-oauth2:一个简单oauth2应用服务,为第三方应用提供用户登录和授权

    这是一个简单的OAuth2.0的服务器,实现了OAuth 2.0的四种通用授权方式,可以用于应用的统一单点登录、权限控制。 项目提供了相应的客户端、web filter、网关组件,实现应用的分布式和集中式权限控制,并给出各种场景...

    cxf+spring webservice jar包

    oauth-provider-20100527.jar opensaml-2.5.1-1.jar openws-1.4.2-1.jar relaxngDatatype-20020414.jar saaj-api-1.3.4.jar saaj-impl-1.3.19.jar serializer-2.7.1.jar slf4j-api-1.6.2.jar slf4j-jdk14-1.6.2.jar ...

    play-framework-reactivemongo-oauth2.0:这是示例应用程序,我们在其中使用了 Play-Framework 2.3.x、Scala 2.11.x、ReactiveMongo-Extensions、Cake-Patter 和 Scala Oauth 2.0

    使用 Play-Framework 2.3.x 的 Scala Oauth 2.0 在这个示例应用程序中,我们使用Oauth2.0创建带有Play-Framework 2.3.x 、 ReactiveMongo-Extensions 、 Cake-Pattern和Scala-Oauth2-Provider 的API。 我们使用 ...

    cxf(jax-ws)+spring+hibernate整合包

    1.1.jar,log4j-1.2.14.jar,mina-core-2.0.7.jar,mssqlserver2.jar,msv-core-2011.1.jar,neethi-3.0.2.jar,oauth-20100527.jar,oauth-provider-20100527.jar,opensaml-2.5.1-1.jar,openws-1.4.2-1.jar,...

    java开源包2

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    JAVA上百实例源码以及开源项目源代码

    简单聊天软件CS模式 2个目标文件 一个简单的CS模式的聊天软件,用socket实现,比较简单。 凯撒加密解密程序 1个目标文件 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件 利用随机函数抽取幸运数字 ...

    java开源包1

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包11

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包3

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包6

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包5

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包10

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包4

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包8

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包7

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包9

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

    java开源包101

    同时,任何第三方都可以使用OAUTH认证服务,任 何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP,JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间...

Global site tag (gtag.js) - Google Analytics