public List<HttpParameter> generateOAuthSignatureHttpParams(String method, String url) {
    long timestamp = System.currentTimeMillis() / 1000;
    long nonce = timestamp + RAND.nextInt();

    List<HttpParameter> oauthHeaderParams = new ArrayList<HttpParameter>(5);
    oauthHeaderParams.add(new HttpParameter("oauth_consumer_key", consumerKey));
    oauthHeaderParams.add(OAUTH_SIGNATURE_METHOD);
    oauthHeaderParams.add(new HttpParameter("oauth_timestamp", timestamp));
    oauthHeaderParams.add(new HttpParameter("oauth_nonce", nonce));
    oauthHeaderParams.add(new HttpParameter("oauth_version", "1.0"));
    if (null != oauthToken) {
      oauthHeaderParams.add(new HttpParameter("oauth_token", oauthToken.getToken()));
    }

    List<HttpParameter> signatureBaseParams =
        new ArrayList<HttpParameter>(oauthHeaderParams.size());
    signatureBaseParams.addAll(oauthHeaderParams);
    parseGetParameters(url, signatureBaseParams);

    StringBuffer base =
        new StringBuffer(method).append("&").append(encode(constructRequestURL(url))).append("&");
    base.append(encode(normalizeRequestParameters(signatureBaseParams)));

    String oauthBaseString = base.toString();
    String signature = generateSignature(oauthBaseString, oauthToken);

    oauthHeaderParams.add(new HttpParameter("oauth_signature", signature));

    return oauthHeaderParams;
  }
Esempio n. 2
0
  /* package */ String generateAuthorizationHeader(
      final String method,
      final String url,
      HttpParameter[] params,
      final String nonce,
      final String timestamp,
      final OAuthToken otoken) {
    if (null == params) {
      params = new HttpParameter[0];
    }
    final List<HttpParameter> oauthHeaderParams = new ArrayList<HttpParameter>(5);
    oauthHeaderParams.add(new HttpParameter("oauth_consumer_key", consumerKey));
    oauthHeaderParams.add(OAUTH_SIGNATURE_METHOD);
    oauthHeaderParams.add(new HttpParameter("oauth_timestamp", timestamp));
    oauthHeaderParams.add(new HttpParameter("oauth_nonce", nonce));
    oauthHeaderParams.add(new HttpParameter("oauth_version", "1.0"));
    if (otoken != null) {
      oauthHeaderParams.add(new HttpParameter("oauth_token", otoken.getToken()));
    }
    final List<HttpParameter> signatureBaseParams =
        new ArrayList<HttpParameter>(oauthHeaderParams.size() + params.length);
    signatureBaseParams.addAll(oauthHeaderParams);
    if (!HttpParameter.containsFile(params)) {
      signatureBaseParams.addAll(toParamList(params));
    }
    parseGetParameters(url, signatureBaseParams);
    final StringBuffer base =
        new StringBuffer(method)
            .append("&")
            .append(HttpParameter.encode(constructRequestURL(url)))
            .append("&");
    base.append(HttpParameter.encode(normalizeRequestParameters(signatureBaseParams)));
    final String oauthBaseString = base.toString();
    logger.debug("OAuth base string: ", oauthBaseString);
    final String signature = generateSignature(oauthBaseString, otoken);
    logger.debug("OAuth signature: ", signature);

    oauthHeaderParams.add(new HttpParameter("oauth_signature", signature));

    // http://oauth.net/core/1.0/#rfc.section.9.1.1
    if (realm != null) {
      oauthHeaderParams.add(new HttpParameter("realm", realm));
    }
    return "OAuth " + encodeParameters(oauthHeaderParams, ",", true);
  }
Esempio n. 3
0
  /*package*/ String generateAuthorizationHeader(
      String method,
      String url,
      PostParameter[] params,
      String nonce,
      String timestamp,
      OAuthToken otoken) {
    if (null == params) {
      params = new PostParameter[0];
    }
    List<PostParameter> oauthHeaderParams = new ArrayList<PostParameter>(5);
    oauthHeaderParams.add(new PostParameter("oauth_consumer_key", consumerKey));
    oauthHeaderParams.add(OAUTH_SIGNATURE_METHOD);
    oauthHeaderParams.add(new PostParameter("oauth_timestamp", timestamp));
    oauthHeaderParams.add(new PostParameter("oauth_nonce", nonce));

    oauthHeaderParams.add(new PostParameter("oauth_version", "1.0"));
    if (null != otoken) {
      oauthHeaderParams.add(new PostParameter("oauth_token", otoken.getToken()));
    }
    List<PostParameter> signatureBaseParams =
        new ArrayList<PostParameter>(oauthHeaderParams.size() + params.length);
    signatureBaseParams.addAll(oauthHeaderParams);
    signatureBaseParams.addAll(toParamList(params));
    parseGetParameters(url, signatureBaseParams);

    StringBuffer base =
        new StringBuffer(method).append("&").append(encode(constructRequestURL(url))).append("&");
    base.append(encode(normalizeRequestParameters(signatureBaseParams)));
    String oauthBaseString = base.toString();
    log("OAuth base string:", oauthBaseString);
    String signature = generateSignature(oauthBaseString, otoken);
    log("OAuth signature:", signature);
    oauthHeaderParams.add(new PostParameter("oauth_signature", signature));
    return "OAuth " + encodeParameters(oauthHeaderParams, ",", true);
  }