package glaze.oauth.creds; import glaze.client.Client; import glaze.oauth.OAuthSchemeFactory; import glaze.oauth.spi.OAuthCredentialsProvider; import glaze.spi.ServiceProvider; import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer; import org.apache.http.auth.AuthScope; import org.apache.http.client.CredentialsProvider; public abstract class AbstractCredentialsProvider implements OAuthCredentialsProvider, ServiceProvider<OAuthCredentialsProvider> { @Override public Class<OAuthCredentialsProvider> serviceClass() { return OAuthCredentialsProvider.class; } @Override public OAuthCredentialsProvider serviceImpl() { return this; } @Override public void visit(Client client) { client.auth(getAuthScope(), getOAuthCredentials()); } @Override public void visit(CredentialsProvider provider) { AuthScope scope = getAuthScope(); OAuthCredentials creds = getOAuthCredentials(); provider.setCredentials(scope, creds); } protected OAuthCredentials createCredentials(String key, String secret, String tokenKey, String tokenSecret) { CommonsHttpOAuthConsumer consumer = new CommonsHttpOAuthConsumer(key, secret); consumer.setTokenWithSecret(tokenKey, tokenSecret); return new OAuthCredentials(consumer); } protected AuthScope getAuthScope() { return new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM, OAuthSchemeFactory.SCHEME_NAME); } @Override public OAuthCredentials getOAuthCredentials() { return getOAuthCredentials(null); } }