Skip to content

Instantly share code, notes, and snippets.

@darrinholst
Created June 16, 2011 18:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save darrinholst/1029942 to your computer and use it in GitHub Desktop.
Save darrinholst/1029942 to your computer and use it in GitHub Desktop.
TwoLegged
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);
}
}
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