Spring Cloud Oauth2 初探

 我来答
青柠姑娘17
2022-07-13 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6602
采纳率:100%
帮助的人:37.7万
展开全部

OAuth2 spring cloud spring security

一个原则: 使用前一定先看官方文档,看不懂再来搜寻第三方资料。

一个Spring框架的应用,需要一种能够保护 API 接口的实现,尝试过 OAuth1.0 ,发现更多的是有关 OAuth2.0 的讨论,且Spring Security 也有队 OAuth2 的支持,于是转而使用 OAuth2 。

其中核心依赖仅有

其中 Spring Security 已经包含在 Starter 中,无需再次声明,以保持 pom 简洁。

要使用OAuth2 服务器,仅需要使用 @EnableAuthorizationServer 注解。

此外OAuth2 Server还依赖于Spring Security,还需要加上 @EnableWebSecurity 注解。
当然,这还不够,根据Spring Security官方文档,你还需要继承 WebSecurityConfigurerAdapter 类以使Security配置生效。
你可以继承但不做任何改动,以使用默认配置。

OAuthServerConfig.class

启动程序,可以看到 OAuth2 的相关接口已经实现了,Spring 的自动配置已经为我们做了许多工作了,以致于我们可以开箱即用。

值得注意的是,自动配置类为我们生成了一个用户名为: user 的 "user" 和一个 "client" :

尝试携带上面的信息进行 GET 请求:
http://127.0.0.1:8080/oauth/authorize?client_id=64b5dabe-a97c-4f60-8492-acd24fc7599d&response_type=code&scope=user&redirect_uri=http://www.baidu.com

会跳转到 /login 页面进行登录验证,填入 user 和 log 中的密码 d457f3b2-a3d7-4ace-bfaf-44ab7bfd8ccc 即可验证通过。

重新跳转回授权页面,选择 Approve 同意并进行授权后,页面跳转至 redirect_url 并携带 code 信息。

取得 code 之后,就可以向服务器继续请求 access-token 了,使用 POST 方法继续请求。

http://127.0.0.1:8080/oauth/token?grant_type=authorization_code&code=bPVWmn&redirect_uri=http://www.baidu.com&scope=user

不出意外,你将会看到以下信息:

至此,我们已经完成了一整个 authorization_code 类型的OAuth2授权了。

同样的,你只需要一个依赖:

//todo: 未完成...

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式