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; }
/* 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); }
/*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); }