我试图在Spring集成项目中使用休息Web服务。这个Web服务是用oauth2(授权代码)保护的。任何想法如何实现这个?
我尝试过使用OAuth2RestTemplate,但它给了我一个错误:
handle
以下是我的代码。
org.springframework.security.oauth2.client.resource.UserRedirectRequiredException: A redirect is required to get the users approval
答案 0 :(得分:1)
授权代码流用于通过重定向在Web浏览器中对用户进行身份验证。它需要用户名和密码进行用户身份验证。
您的案例是关于两种服务之间的通信,也称为M2M(机器到机器)。出于安全原因,不允许服务自行存储用户凭据。您应该使用客户端凭据流,该流仅需要客户端ID和客户端密钥进行身份验证。那么你就可以使用OAuth2RestTemplate。
答案 1 :(得分:0)
如果使用oAuth2保护服务,则必须使用oAuth规则才能访问资源服务器。这意味着您的应用需要注册并获取clientID和客户端密码,然后您的应用的用户可以将其用于oAuth-connect ...
如果您调用该呼叫无关紧要,您必须使用oAuth。 OAuth2RestTemplate
只是针对oAuth开发人员的Spring RestTemplate
实现,它抽象了一些与oAuth相关的逻辑......