Created
June 16, 2011 18:48
-
-
Save darrinholst/1029942 to your computer and use it in GitHub Desktop.
TwoLegged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.scribe.builder.api.DefaultApi10a; | |
import org.scribe.model.OAuthConfig; | |
import org.scribe.model.Token; | |
import org.scribe.oauth.OAuthService; | |
public class TwoLeggedApi extends DefaultApi10a { | |
@Override | |
public String getAccessTokenEndpoint() { | |
return ""; | |
} | |
@Override | |
public String getRequestTokenEndpoint() { | |
return ""; | |
} | |
@Override | |
public String getAuthorizationUrl(Token arg0) { | |
return ""; | |
} | |
@Override | |
public OAuthService createService(OAuthConfig config) { | |
return new TwoLeggedService(this, config); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.scribe.builder.api.DefaultApi10a; | |
import org.scribe.model.OAuthConfig; | |
import org.scribe.model.OAuthConstants; | |
import org.scribe.model.OAuthRequest; | |
import org.scribe.model.Token; | |
import org.scribe.model.Verifier; | |
import org.scribe.oauth.OAuthService; | |
import java.util.Map; | |
public class TwoLeggedService implements OAuthService { | |
private static final String VERSION = "1.0"; | |
private OAuthConfig config; | |
private DefaultApi10a api; | |
public TwoLeggedService(DefaultApi10a api, OAuthConfig config) { | |
this.api = api; | |
this.config = config; | |
} | |
public String getVersion() { | |
return VERSION; | |
} | |
public Token getRequestToken() { | |
return null; | |
} | |
public Token getAccessToken(Token requestToken, Verifier verifier) { | |
return null; | |
} | |
public String getAuthorizationUrl(Token requestToken) { | |
return api.getAuthorizationUrl(requestToken); | |
} | |
public void signRequest(Token token, OAuthRequest request) { | |
addOAuthParams(request, token); | |
addSignature(request); | |
} | |
private void addOAuthParams(OAuthRequest request, Token token) { | |
request.addOAuthParameter(OAuthConstants.TIMESTAMP, api.getTimestampService().getTimestampInSeconds()); | |
request.addOAuthParameter(OAuthConstants.NONCE, api.getTimestampService().getNonce()); | |
request.addOAuthParameter(OAuthConstants.CONSUMER_KEY, config.getApiKey()); | |
request.addOAuthParameter(OAuthConstants.SIGN_METHOD, api.getSignatureService().getSignatureMethod()); | |
request.addOAuthParameter(OAuthConstants.VERSION, getVersion()); | |
if (config.hasScope()) request.addOAuthParameter(OAuthConstants.SCOPE, config.getScope()); | |
request.addOAuthParameter(OAuthConstants.SIGNATURE, getSignature(request, token)); | |
} | |
private String getSignature(OAuthRequest request, Token token) { | |
String baseString = api.getBaseStringExtractor().extract(request); | |
return api.getSignatureService().getSignature(baseString, config.getApiSecret(), token.getSecret()); | |
} | |
private void addSignature(OAuthRequest request) { | |
switch (config.getSignatureType()) { | |
case Header: | |
String oauthHeader = api.getHeaderExtractor().extract(request); | |
request.addHeader(OAuthConstants.HEADER, oauthHeader); | |
break; | |
case QueryString: | |
for (Map.Entry<String, String> entry : request.getOauthParameters().entrySet()) { | |
request.addQuerystringParameter(entry.getKey(), entry.getValue()); | |
} | |
break; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment