diff options
Diffstat (limited to 'WordPress/src/main/java/org/wordpress/android/networking/OAuthAuthenticator.java')
-rw-r--r-- | WordPress/src/main/java/org/wordpress/android/networking/OAuthAuthenticator.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/WordPress/src/main/java/org/wordpress/android/networking/OAuthAuthenticator.java b/WordPress/src/main/java/org/wordpress/android/networking/OAuthAuthenticator.java new file mode 100644 index 000000000..326ca9064 --- /dev/null +++ b/WordPress/src/main/java/org/wordpress/android/networking/OAuthAuthenticator.java @@ -0,0 +1,35 @@ +package org.wordpress.android.networking; + +import org.wordpress.android.WordPress; +import org.wordpress.android.models.Blog; +import org.wordpress.android.models.AccountHelper; +import org.wordpress.android.util.StringUtils; + +public class OAuthAuthenticator implements Authenticator { + public static String getAccessToken(final String siteId) { + String token = AccountHelper.getDefaultAccount().getAccessToken(); + + if (siteId != null) { + // Get the token for a Jetpack site if needed + Blog blog = WordPress.wpDB.getBlogForDotComBlogId(siteId); + + if (blog != null) { + String jetpackToken = blog.getApi_key(); + + // valid OAuth tokens are 64 chars + if (jetpackToken != null && jetpackToken.length() == 64 && !blog.isDotcomFlag()) { + token = jetpackToken; + } + } + } + + return token; + } + + @Override + public void authenticate(final AuthenticatorRequest request) { + String siteId = request.getSiteId(); + String token = getAccessToken(siteId); + request.sendWithAccessToken(StringUtils.notNullStr(token)); + } +} |