public RequestToken(String key, String token) { this.key = key; this.secret = token; this.percentEncodedKey = Utf8UrlEncoder.percentEncodeQueryElement(key); }
public ConsumerKey(String key, String secret) { this.key = key; this.secret = secret; this.percentEncodedKey = Utf8UrlEncoder.percentEncodeQueryElement(key); }
@Test public void testPercentageEncoding() { assertEquals(Utf8UrlEncoder.percentEncodeQueryElement("foobar"), "foobar"); assertEquals(Utf8UrlEncoder.percentEncodeQueryElement("foo*bar"), "foo%2Abar"); assertEquals(Utf8UrlEncoder.percentEncodeQueryElement("foo~b_ar"), "foo~b_ar"); } }
String computeAuthorizationHeader(ConsumerKey consumerAuth, RequestToken userAuth, Uri uri, String method, List<Param> formParams, List<Param> queryParams, long timestamp, String nonce) throws InvalidKeyException { String percentEncodedNonce = Utf8UrlEncoder.percentEncodeQueryElement(nonce); String signature = computeSignature(consumerAuth, userAuth, uri, method, formParams, queryParams, timestamp, percentEncodedNonce); return computeAuthorizationHeader(consumerAuth, userAuth, signature, timestamp, percentEncodedNonce); }
for (Param param : formParams) { parameters.add(Utf8UrlEncoder.percentEncodeQueryElement(param.getName()), Utf8UrlEncoder.percentEncodeQueryElement(param.getValue()));
private void testSignatureBaseStringWithEncodableOAuthToken(Request request) throws NoSuchAlgorithmException { String signatureBaseString = new OAuthSignatureCalculatorInstance() .signatureBaseString(// new ConsumerKey("9djdj82h48djs9d2", CONSUMER_SECRET), new RequestToken("kkk9d7dh3k39sjv7", TOKEN_SECRET), request.getUri(), request.getMethod(), request.getFormParams(), request.getQueryParams(), 137131201, Utf8UrlEncoder.percentEncodeQueryElement("ZLc92RAkooZcIO/0cctl0Q==")).toString(); assertEquals(signatureBaseString, "POST&" + "http%3A%2F%2Fexample.com%2Frequest" + "&a2%3Dr%2520b%26" + "a3%3D2%2520q%26" + "a3%3Da%26" + "b5%3D%253D%25253D%26" + "c%2540%3D%26" + "c2%3D%26" + "oauth_consumer_key%3D9djdj82h48djs9d2%26" + "oauth_nonce%3DZLc92RAkooZcIO%252F0cctl0Q%253D%253D%26" + "oauth_signature_method%3DHMAC-SHA1%26" + "oauth_timestamp%3D137131201%26" + "oauth_token%3Dkkk9d7dh3k39sjv7%26" + "oauth_version%3D1.0"); }
@Test public void testWithNullRequestToken() throws NoSuchAlgorithmException { final Request request = get("http://photos.example.net/photos?file=vacation.jpg&size=original").build(); String signatureBaseString = new OAuthSignatureCalculatorInstance() .signatureBaseString(// new ConsumerKey("9djdj82h48djs9d2", CONSUMER_SECRET), new RequestToken(null, null), request.getUri(), request.getMethod(), request.getFormParams(), request.getQueryParams(), 137131201, Utf8UrlEncoder.percentEncodeQueryElement("ZLc92RAkooZcIO/0cctl0Q==")).toString(); assertEquals(signatureBaseString, "GET&" + "http%3A%2F%2Fphotos.example.net%2Fphotos&file%3Dvacation.jpg%26" + "oauth_consumer_key%3D9djdj82h48djs9d2%26" + "oauth_nonce%3DZLc92RAkooZcIO%252F0cctl0Q%253D%253D%26" + "oauth_signature_method%3DHMAC-SHA1%26" + "oauth_timestamp%3D137131201%26" + "oauth_version%3D1.0%26size%3Doriginal"); }