使用Spring休息模板消耗Oauth2(授权代码)rest api

时间:2018-01-20 15:49:52

标签: java spring-security oauth-2.0 spring-integration

我试图在Spring集成项目中使用休息Web服务。这个Web服务是用oauth2(授权代码)保护的。任何想法如何实现这个?

我尝试过使用OAuth2RestTemplate,但它给了我一个错误: handle

以下是我的代码。

org.springframework.security.oauth2.client.resource.UserRedirectRequiredException: A redirect is required to get the users approval

2 个答案:

答案 0 :(得分:1)

授权代码流用于通过重定向在Web浏览器中对用户进行身份验证。它需要用户名和密码进行用户身份验证。

您的案例是关于两种服务之间的通信,也称为M2M(机器到机器)。出于安全原因,不允许服务自行存储用户凭据。您应该使用客户端凭据流,该流仅需要客户端ID和客户端密钥进行身份验证。那么你就可以使用OAuth2RestTemplate。

答案 1 :(得分:0)

如果使用oAuth2保护服务,则必须使用oAuth规则才能访问资源服务器。这意味着您的应用需要注册并获取clientID和客户端密码,然后您的应用的用户可以将其用于oAuth-connect ...

如果您调用该呼叫无关紧要,您必须使用oAuth。 OAuth2RestTemplate只是针对oAuth开发人员的Spring RestTemplate实现,它抽象了一些与oAuth相关的逻辑......