问题标签 [oauth2resttemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
211 浏览

spring - Spring Traverson 和 OAuth2RestTemplate

我有一个OAuth2RestTemplate处理与 REST-API 的通信,只是尝试将其与 结合使用Traverson,如下所示:

当尝试使用traversonnow 时,模板可以很好地处理 OAuth2 舞蹈,获取令牌和所有内容 - 但Authorization: Bearer ...不幸的是,标头不会由traverson.

所以当我现在调用一个端点时,例如traverson.follow( "xyz" )...结果只是 REST API 提供者的登录表单:-(

我的问题:我是否遗漏了某些东西,或者我的“OAuth2RestTemplate with Traverson”方法根本不受支持或traverson打算以这种方式使用?

任何帮助表示赞赏!目前我想说这根本不可能,但在这个“春天的世界”中,大多数时候都有办法完成它——也许你们中的一个人知道怎么做!

0 投票
1 回答
1006 浏览

java - 持久化 Spring OAuth2RestTemplate 的刷新令牌

我有一个移动应用程序,它使用我的Spring Boot 后端进行身份验证和访问数据等操作。Spring Boot 应用程序的一部分使用 OAuth2 从资源服务器访问数据。我偶然发现了一个用于 Spring 的oauth2 客户端库,它发挥了魔力,一切都开箱即用。

当我试图弄清楚这个库是如何工作的时,我似乎无法找到它处理刷新令牌的方式的答案。我知道 oauth2client 绑定到每个用户的会话,但是当会话结束时会发生什么?访问和刷新令牌不会丢失吗?

我一直在寻找方法来为我的数据库中的每个用户保留刷新令牌,但我在库中没有找到任何支持。这让我想知道我是否必须自己实现这个,或者是否有必要这样做。

任何建议表示赞赏!

0 投票
0 回答
156 浏览

java - 为什么 JdbcClientTokenServices 不保存刷新令牌?

我有一个充当 OAuth2 客户端的 Spring 应用程序。我实现了一个 JdbcClientTokenServices 来为每个成功进行身份验证的用户保留令牌。

此代码使用oauth_client_token表。当我在此表中查找内容时,我注意到它只保存了访问令牌?我想知道为什么刷新令牌也没有保存,因为无论如何刷新令牌应该比访问令牌寿命更长。

0 投票
0 回答
290 浏览

java - OAuth2 客户端应该发送自定义参数

我在 spring mvc 应用程序中使用 spring-security-oauth2-2.2.0。我使用OAuth2RestTemplate配置了我的 oauth2 令牌,如下所示:

现在我想在旧配置中添加一个新参数并将其发送给身份验证提供程序。新参数称为资源。这是完美运行的邮递员配置:
在此处输入图像描述

如何将新参数集成到旧令牌配置中?我应该自定义哪种方法?

0 投票
0 回答
827 浏览

spring-boot - Spring boot OAuth2RestTemplate 客户端设置,authorization_request_not_found 错误

我尝试在 Spring Boot 项目中设置 OAuth2RestTemplate。我尝试遵循自定义设置,但由于某种原因,我authorization_request_not_found在尝试访问安全资源时总是出错。

我的应用配置:

}

安全配置:

控制器:

应用程序.yml:

现在我发现这也很有趣,因为我不确定为什么必须两次声明这些属性。我的意思是在构造函数中读取属性OAuth2RestTemplateAuthorizationCodeResourceDetails实例,而构造函数内部读取另一个,我只是不明白为什么会这样?有简单的设置吗?AppConfigsecurity.oatuh2.clientDefaultOAuth2ClientContextOAuth2RestTemplate

无论如何要回到最初的问题,当我访问/secure它时,我会将我重定向到登录页面,在那里我成功登录,然后将我重定向回该/secure页面,到目前为止一切都很好。

就在调用 restTemplate 之前,我在日志中有这个:

但是在调用 restTemplate 之后:

如您所见,它带我回到登录页面,所以我再次登录,这次我收到错误:[authorization_request_not_found]

日志:

我在这一点上迷路了,不知道为什么我会得到这个。

我还将项目上传到github,以防更容易检查它有什么问题。

谢谢

0 投票
1 回答
1880 浏览

spring-boot - 如何为不同的服务配置多个 OAuth2RestTemplates?

如何使用 Spring Boot 配置多个 OAuth2RestTemplates(通过 OAuth2ProtectedResourceDetails),以便我可以访问多个 API。正如我们所见,它们都配置在同一个租户中,除了范围之外,所有配置都相同。

我相信我确实读过你不能有多个范围,因为每个 JWT 令牌都是资源特定的,但我看不到有多个 RestTemplates 的例子。

谢谢!

0 投票
1 回答
167 浏览

spring-boot - OAuth2RestTemplate 与 Ribbon + Eureka

我正在使用 Spring Cloud 和 Netflix OSS Eureka 和 Ribbon 开发微服务。我有另一个作为 oauth-server 运行的服务,它提供 OAuth2 令牌。我所有的微服务都在 Eureka 注册,包括 oauth-server。如果我将 oauth-server 的硬编码 url 用作“clientCredentialsResourceDetails.setAccessTokenUri("http://localhost:9000/oauth/token");”,我的整个解决方案就可以工作。但是当我尝试使用 oauth-server 的 Eureka Discovered url 时,例如 "clientCredentialsResourceDetails.setAccessTokenUri("http://oauth-server/oauth/token");" 我收到错误:java.net.UnknownHostException: oauth-server

MyConfig.java

MyController.java

我搜索了很多文档和在线帮助,但这些解决方案都不起作用。我认为这应该是一个简单的配置问题,现在已经耗尽了我两天的努力。

0 投票
1 回答
470 浏览

java - 使用 OAuth2 中继访问令牌的 Spring 资源服务器

我有一个受 OAuth2 (KeyCloak) 保护的 Spring Boot 资源服务器。我可以使用 Bearer Token 访问端点。现在,我想调用另一个受 Auth Server 保护的服务。我想转发令牌。我找不到关于如何做到这一点的明确指南。

我的依赖是:

我的 application.yml 就像:

我正在尝试创建 OAuth2RestTemplate ,例如:

但我收到错误:

我怎样才能解决这个问题?

0 投票
1 回答
283 浏览

spring - OAuth2RestOperations 使用从请求标头获取的令牌,而不是请求身份验证服务器

我有一个使用 OAuth2RestTemplate 作为 OAuth2Client 的 Spring Boot 客户端应用程序。我已将 OAuth2RestTemplate 配置为调用 authserver 并将从中获得的令牌添加到用于访问资源服务器的标头中。发生的问题是,每当我在客户端应用程序中调用该方法以使用 restTemplate 访问资源服务器时,它使用来自客户端应用程序请求标头的令牌而不是调用身份验证服务器。它使用该令牌,并且该令牌被我的资源服务器拒绝。在被拒绝后,它只会调用身份验证服务器并放置正确的令牌,然后再次将请求发送到我的资源服务器。

有没有办法让rest模板不使用标头中的令牌并在连接资源服务器之前为令牌调用身份验证服务器?感谢你

我的配置类

我的 serviceImpl 方法是

0 投票
1 回答
459 浏览

apache-httpclient-4.x - 带有JDK11错误的Spring RestTemplate发布超过一定限制的数据

我正在使用带有 JDK11 的 OAuth2RestTemplate 使用 Json 数据(860 行和 26 KB)发出 POST 请求。奇怪的是,代码在生产服务器上使用 < 700 Json 行(或 20 KB)并且在本地机器上使用 < 500 行(15 KB)时运行良好。但是一旦我在 JSON 中增加了几个数据块,它就会开始给出异常。异常基于与 RestTemplate 一起使用的 HttpRequestFactory 实现。如果我使用HttpComponentsClientHttpRequestFactoryNoHttpResponseException XXX.XXX:443 无法响应,如果我使用SimpleClientHttpRequestFactoryjava.net.SocketException 来自服务器的文件意外结束

奇怪的是,这适用于较低版本的 JDK 8、9 和 10。我还尝试了其他 Http 客户端,如带有 JDK11 的 Spring Webclient,并且相同的数据可以使用它。除此之外,同样的数据也适用于 Curl/Postman。但无法确定为什么它会在超出特定数据限制的 RestTemplate 上产生问题。

以下是我正在使用的一些主要依赖项(依赖项在现有项目中不会有太大变化)。

任何帮助或想法将不胜感激。TIA