From 193dcd2e25efcca804632119f9585346e31dc1a9 Mon Sep 17 00:00:00 2001 From: Pablo Fernandez Date: Tue, 19 Apr 2011 22:17:23 -0300 Subject: [PATCH] added SignatureType and querystring signing functionallity --- src/main/java/org/scribe/model/OAuthConfig.java | 11 +++++++++++ .../java/org/scribe/model/SignatureType.java | 7 +++++++ .../org/scribe/oauth/OAuth10aServiceImpl.java | 17 +++++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/scribe/model/SignatureType.java diff --git a/src/main/java/org/scribe/model/OAuthConfig.java b/src/main/java/org/scribe/model/OAuthConfig.java index 60a5a35..88de920 100644 --- a/src/main/java/org/scribe/model/OAuthConfig.java +++ b/src/main/java/org/scribe/model/OAuthConfig.java @@ -10,6 +10,7 @@ public class OAuthConfig private String apiKey; private String apiSecret; private String callback; + private SignatureType signatureType; public OAuthConfig(String key, String secret) { @@ -52,4 +53,14 @@ public class OAuthConfig { this.callback = callback; } + + public SignatureType getSignatureType() + { + return signatureType != null ? signatureType : SignatureType.Header; + } + + public void setSignatureType(SignatureType type) + { + this.signatureType = type; + } } \ No newline at end of file diff --git a/src/main/java/org/scribe/model/SignatureType.java b/src/main/java/org/scribe/model/SignatureType.java new file mode 100644 index 0000000..3440a36 --- /dev/null +++ b/src/main/java/org/scribe/model/SignatureType.java @@ -0,0 +1,7 @@ +package org.scribe.model; + +public enum SignatureType +{ + Header, + QueryString +} diff --git a/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java b/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java index c37b6e0..13f0ac6 100644 --- a/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java +++ b/src/main/java/org/scribe/oauth/OAuth10aServiceImpl.java @@ -1,5 +1,7 @@ package org.scribe.oauth; +import java.util.*; + import org.scribe.builder.api.*; import org.scribe.model.*; @@ -110,7 +112,18 @@ public class OAuth10aServiceImpl implements OAuthService private void addSignature(OAuthRequest request) { - String oauthHeader = api.getHeaderExtractor().extract(request); - request.addHeader(OAuthConstants.HEADER, oauthHeader); + switch (config.getSignatureType()) + { + case Header: + String oauthHeader = api.getHeaderExtractor().extract(request); + request.addHeader(OAuthConstants.HEADER, oauthHeader); + break; + case QueryString: + for (Map.Entry entry : request.getOauthParameters().entrySet()) + { + request.addQuerystringParameter(entry.getKey(), entry.getValue()); + } + break; + } } }