java - 从 Scribe 中的请求 header 中删除 oauth_token

标签 java oauth scribe two-legged

我们正在尝试连接另一家公司的自定义 API,该 API 使用双向 OAuth 来验证请求并向我们发送响应。

目前我们的代码正在发送一个请求,但它没有在另一端进行身份验证,因此发送了一个未经授权的响应。

我们目前调查的步骤:

  • 使用 相同的凭据 在 python 中使用 OAuth 实现连接到远程站点。
  • 要求另一家公司将我们的 OAuth 请求与另一家成功的 OAuth 请求进行比较,看看我们的 OAuth 请求是否有任何遗漏。

在上面的第二点之后,我们的请求与另一个工作请求之间的唯一区别是 oauth_token 参数存在于我们的请求中,而不存在于其他请求中。此外,他说他们在大多数请求中都有一个oauth_body_hash_value,但在我们的请求中不存在 - 尽管他们确实在没有它的情况下收到了工作请求。

有没有办法删除 Scribe 中的 oauth_token 参数?或者,是否总是需要 oauth_body_hash_value?请求可以没有吗?

我已经包含了下面的代码,我是 OAuth 的新手,所以如果还有其他问题,请随时告诉我。

请注意,TestAPI.class 扩展了 DefaultAPI10a 并且只为所有三个必需的方法返回“”。

public class TestImporter {

  private static final String REQ_URL   = "http://test.com/";

  private static final String KEY         = "KEY";
  private static final String SECRET      = "SECRET";

  // test variables
  private static final String VAR1        = "Test123";

  public static void main(String[] args) {

    OAuthService service = new ServiceBuilder()
                               .provider(TestAPI.class)
                               .apiKey(KEY)
                               .apiSecret(SECRET)
                               .build();
    Token token = new Token("", "");
    OAuthRequest request = new OAuthRequest(Verb.GET, REQ_URL + VAR1 + "/");
    service.signRequest(token, request);
    Response response = request.send();
    System.out.println(response.getBody());

  }

}

最佳答案

关于 your own answer似乎您想要做的是将签名放在查询字符串中而不使用 Authorization header 。

虽然有效,但不推荐这样做。无论如何,如果你真的需要这样做,有一种方法可以创建 OAuthService 以在查询字符串中“签名”:

ServiceBuilder()
  .provider(TestAPI.class)
  .apiKey(KEY)
  .apiSecret(SECRET)
  .signatureType(SignatureType.QueryString)
  .build();

关于java - 从 Scribe 中的请求 header 中删除 oauth_token,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493547/

相关文章:

java - JMeter - 为循环 Controller 设置动态变量

java - Eclipse 使用的是哪个 Java?

java - 在tomcat上部署war文件时出错

java - 使用 scribe 向 google 授权,不知道如何获取 google 联系人

java - Tumblr API 照片发布返回 401(未授权)

java - boolean 测试的问题

xcode - 在 Xcode 3.2 中使用第三方框架时出现问题

android - 加密 SharedPreferences 中的数据

javascript - JavaScript 中的 Twitter OAuth 身份验证

oauth - 使用 Scribe 刷新 LinkedIn 访问 token