为了测试,需要创建3个不同的Spring Boot应用如下:
[list][*]spring-oauth2-client 客户端(端口:8080)
[*]spring-oauth2-server Auth服务器(端口:8081)
[*]spring-oauth2-resource Rest服务器(端口:8082)[/list]
版本
ScribeJava 4.1.2 + Spring Security OAuth2 2.0.12
ScribeJava 自身已经提供了很多OAuth开发平台的连接API,这里需要自定义测试Auth服务器的API。
Auth服务器和Rest服务器连接到相同的后台PostgreSQL数据库。
具体实现可以下载源代码查看。[url=http://dl.iteye.com/topics/download/e51404bf-3ea3-3819-8953-11a2d62d29cb]点击下载[/url]
相关文章:
[url=http://rensanning.iteye.com/blog/2384996]Spring Security OAuth2 Provider 之 最小实现[/url]
[url=http://rensanning.iteye.com/blog/2385162]Spring Security OAuth2 Provider 之 数据库存储[/url]
[url=http://rensanning.iteye.com/blog/2386309]Spring Security OAuth2 Provider 之 第三方登录简单演示[/url]
[url=http://rensanning.iteye.com/blog/2386553]Spring Security OAuth2 Provider 之 自定义开发[/url]
[url=http://rensanning.iteye.com/blog/2386766]Spring Security OAuth2 Provider 之 整合JWT[/url]
过程如下:
(1)访问客户端首页 [color=blue]http://localhost:8080/[/color]
(2)点击signin链接 [color=blue]http://localhost:8080/signin[/color]
(3)signin处理中,经由ScribeJava跳转到Auth服务器端认证 [color=blue]http://localhost:8081/oauth/authorize?...[/color]
(4)Auth服务器端输入用户名密码
(5)Auth服务器端授权
(6)Auth服务器端回调客户端,回传code值 [color=blue]http://localhost:8080/callback[/color]
(7)callback处理中,使用code值经由ScribeJava发送请求到Auth服务器端获取AccessToken [color=blue]http://localhost:8081/oauth/token?...[/color]
(8)callback处理中,使用AccessToken经由ScribeJava发送请求到Rest服务器获取用户信息 [color=blue]http://localhost:8082/api/profile[/color]
(9)callback处理中,获取到用户信息后显示到客户端
[list][*]spring-oauth2-client 客户端(端口:8080)
[*]spring-oauth2-server Auth服务器(端口:8081)
[*]spring-oauth2-resource Rest服务器(端口:8082)[/list]
版本
ScribeJava 4.1.2 + Spring Security OAuth2 2.0.12
ScribeJava 自身已经提供了很多OAuth开发平台的连接API,这里需要自定义测试Auth服务器的API。
Auth服务器和Rest服务器连接到相同的后台PostgreSQL数据库。
具体实现可以下载源代码查看。[url=http://dl.iteye.com/topics/download/e51404bf-3ea3-3819-8953-11a2d62d29cb]点击下载[/url]
相关文章:
[url=http://rensanning.iteye.com/blog/2384996]Spring Security OAuth2 Provider 之 最小实现[/url]
[url=http://rensanning.iteye.com/blog/2385162]Spring Security OAuth2 Provider 之 数据库存储[/url]
[url=http://rensanning.iteye.com/blog/2386309]Spring Security OAuth2 Provider 之 第三方登录简单演示[/url]
[url=http://rensanning.iteye.com/blog/2386553]Spring Security OAuth2 Provider 之 自定义开发[/url]
[url=http://rensanning.iteye.com/blog/2386766]Spring Security OAuth2 Provider 之 整合JWT[/url]
过程如下:
(1)访问客户端首页 [color=blue]http://localhost:8080/[/color]
(2)点击signin链接 [color=blue]http://localhost:8080/signin[/color]
(3)signin处理中,经由ScribeJava跳转到Auth服务器端认证 [color=blue]http://localhost:8081/oauth/authorize?...[/color]
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值 [color=blue]http://localhost:8080/callback[/color]
(7)callback处理中,使用code值经由ScribeJava发送请求到Auth服务器端获取AccessToken [color=blue]http://localhost:8081/oauth/token?...[/color]
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服务器获取用户信息 [color=blue]http://localhost:8082/api/profile[/color]
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"));
本文介绍了一个基于Spring Security OAuth2实现的认证流程案例。该案例包括三个Spring Boot应用:客户端(端口8080)、认证服务器(端口8081)和资源服务器(端口8082)。通过具体的步骤展示了从用户登录到获取资源的整个过程。
1184

被折叠的 条评论
为什么被折叠?



