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

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  
您好博主,我是初次接触这个,能不能给说下您这项目的具体的访问流程啊。拜托了。确实很着急使用。

相关推荐

    spring-security-oauth2.rar

    首先,OAuth2是一种授权协议,它允许第三方应用在用户授权的情况下访问受保护的资源。Spring Security OAuth2是Spring生态系统中的一个模块,专门用于实现OAuth2规范,为开发者提供了构建安全、可扩展的API服务的...

    SpringSecurity+oauth2+jwt.docx

    《Spring Security + OAuth2 + JWT 实现Web安全认证》 在现代Web开发中,安全认证是不可或缺的一部分。Spring Security作为Java领域中强大的安全框架,配合OAuth2和JWT(JSON Web Token),可以构建出高效且安全的...

    springboot与security oauth2整合例子

    当我们谈论"springboot与security oauth2整合例子",实际上是在讨论如何将OAuth2协议集成到Spring Boot和Spring Security中,以实现基于令牌(Token)的身份验证和授权机制。OAuth2是一种开放标准,用于授权第三方...

    SpringSecurity3.x源码工程

    SpringSecurity是Java领域中一个强大的安全框架,专为构建安全的Web应用而设计。3.x版本是其历史上的一个重要里程碑,提供了丰富的功能和高度的定制性。本源码工程是针对SpringSecurity3.x的深入学习资源,包含了...

    springboot+security+cas集成demo

    2. **配置Spring Security**:在Spring Security的配置类中,设置安全策略,例如开启CAS认证,并指定CasAuthenticationFilter和CasAuthenticationEntryPoint。 3. **定义Service Provider**:在CAS服务器上,为...

    srping权限认证、分布式、Security 、oAuth

    OAuth2解决了多服务登录和第三方应用接入的问题,而Spring Security则提供了强大的安全框架,两者协同工作,为现代分布式系统提供了高效且安全的权限管理解决方案。在实际应用中,开发者需要根据具体需求配置Spring ...

    狂神spring-security静态资源.zip

    学习Spring Security时,通常会通过创建一个简单的Web应用,逐步实现登录注册、角色权限控制、记住我功能等,来加深理解。压缩包中的"security"可能包含这些实战案例的代码和文档。 总的来说,"狂神spring-...

    Spring Security 学习总结1_3

    "springsecurity-namespace"可能指的是Spring Security的XML命名空间配置。在Spring Security的早期版本中,使用XML配置是最常见的实践。例如,你可能会看到以下片段: ```xml **" access="hasRole('ROLE_ADMIN')...

    OAuth2-server-master.zip

    OAuth2 是一个授权框架,它允许第三方应用在用户授权的情况下,访问特定的资源。Spring Boot 结合 Security 和 OAuth2 可以构建一个安全、可扩展的身份验证和授权服务器。在这个"OAuth2-server-master.zip"压缩包中...

    SpringSecurity权限管理

    7. **OAuth2 and OpenID Connect Support**:SpringSecurity还支持OAuth2和OpenID Connect协议,这对于构建现代的API和单点登录(SSO)系统非常有用。 在"SpringSecurity权限管理开发手册.pdf"和"SpringSecurity...

    Oauth2-mem-test.rar

    为了实现这些功能,开发者可能需要配置Spring Security的OAuth2 Resource Server,以处理来自OAuth2 Provider的令牌。同时,还需要设置Authorization Server来处理用户的登录、授权请求,生成访问令牌。这些令牌可以...

    Spring Security 新手入门级maven实例

    默认情况下,Spring Security使用一个简单的JSP页面作为登录界面。你可以在配置中指定自己的登录页面,例如: ```java http.formLogin() .loginPage("/login.html") // 自定义登录页面 .loginProcessingUrl("/...

    spring-oauth2-login

    Spring OAuth2 Login是一个基于Spring Security框架的实现,用于在Web应用程序中集成OAuth2登录功能。这个项目的核心目标是提供一种安全、便捷的方式来让用户通过第三方身份验证服务(如Google、Facebook或GitHub)...

    Spring Security认证权限管理

    Spring Security也支持OAuth2,可以实现第三方登录功能,如Google、Facebook登录。通过OAuth2,Spring Security可以帮助应用保护API,只允许经过授权的客户端访问。 **源码分析** 深入理解Spring Security需要研究...

    spring-security3 入门篇

    - **OAuth2集成**: 如何使用Spring Security与OAuth2结合,实现第三方登录功能。 - **CORS支持**: 设置跨域请求的安全策略,允许不同源的Web应用进行交互。 - **国际化的错误处理**: 如何定制Spring Security的...

    spring security 4.0.1

    Spring Security是Spring框架的一个核心组件,专注于提供全面的安全解决方案,包括认证、授权和访问控制。在Spring Security 4.0.1版本中,这个框架引入了一些重要的改进和更新,以增强其性能和安全性。 首先,...

    OAuth/单点登录/统一认证

    OAuth 主要用于允许第三方应用在用户许可的情况下访问其私有资源,而SSO则提供一种集中化的登录方式,使得用户在一个系统登录后,无需再次认证即可访问其他关联系统。 OAuth 2.0 是目前广泛采用的授权框架,它定义...

    SpringSecurity3框架

    - Spring Security 3支持OAuth2协议,可以用于实现第三方登录功能,如Google、Facebook登录。 8. **AOP集成** - Spring Security利用Spring的AOP(面向切面编程)实现方法级别的安全控制,可以对方法调用进行访问...

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

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

Global site tag (gtag.js) - Google Analytics