diff --git a/src/main/java/org/scribe/builder/api/EvernoteApi.java b/src/main/java/org/scribe/builder/api/EvernoteApi.java index 48d45e9..007f48b 100644 --- a/src/main/java/org/scribe/builder/api/EvernoteApi.java +++ b/src/main/java/org/scribe/builder/api/EvernoteApi.java @@ -1,34 +1,21 @@ package org.scribe.builder.api; import org.scribe.model.Token; -import org.scribe.model.Verb; public class EvernoteApi extends DefaultApi10a { private static final String AUTHORIZATION_URL = "https://www.evernote.com/OAuth.action?oauth_token=%s"; - - @Override - public Verb getRequestTokenVerb() - { - return Verb.GET; - } - @Override + @Override public String getRequestTokenEndpoint() { - return "https://www.evernote.com/oauth"; - } - - @Override - public Verb getAccessTokenVerb() - { - return Verb.GET; - } + return "https://www.evernote.com/oauth"; + } @Override public String getAccessTokenEndpoint() { - return "https://www.evernote.com/oauth"; + return "https://www.evernote.com/oauth"; } @Override @@ -39,24 +26,24 @@ public class EvernoteApi extends DefaultApi10a public static class Sandbox extends EvernoteApi { - private static final String SANDBOX_URL = "https://sandbox.evernote.com/oauth"; + private static final String SANDBOX_URL = "https://sandbox.evernote.com"; @Override public String getRequestTokenEndpoint() { - return SANDBOX_URL; + return SANDBOX_URL + "/oauth"; } @Override public String getAccessTokenEndpoint() { - return SANDBOX_URL; + return SANDBOX_URL + "/oauth"; } @Override public String getAuthorizationUrl(Token requestToken) { - return String.format(SANDBOX_URL + "?oauth_token=%s", requestToken.getToken()); + return String.format(SANDBOX_URL + "/OAuth.action?oauth_token=%s", requestToken.getToken()); } - } + } } diff --git a/src/main/java/org/scribe/extractors/TokenExtractorImpl.java b/src/main/java/org/scribe/extractors/TokenExtractorImpl.java index c48fe35..ba1784b 100644 --- a/src/main/java/org/scribe/extractors/TokenExtractorImpl.java +++ b/src/main/java/org/scribe/extractors/TokenExtractorImpl.java @@ -16,7 +16,7 @@ import org.scribe.utils.*; public class TokenExtractorImpl implements RequestTokenExtractor, AccessTokenExtractor { private static final Pattern TOKEN_REGEX = Pattern.compile("oauth_token=([^&]+)"); - private static final Pattern SECRET_REGEX = Pattern.compile("oauth_token_secret=([^&]+)"); + private static final Pattern SECRET_REGEX = Pattern.compile("oauth_token_secret=([^&]*)"); /** * {@inheritDoc} diff --git a/src/test/java/org/scribe/extractors/TokenExtractorTest.java b/src/test/java/org/scribe/extractors/TokenExtractorTest.java index 2c9928f..aca5ad1 100644 --- a/src/test/java/org/scribe/extractors/TokenExtractorTest.java +++ b/src/test/java/org/scribe/extractors/TokenExtractorTest.java @@ -43,6 +43,15 @@ public class TokenExtractorTest assertEquals("hh5s93j4hdidpola", extracted.getToken()); assertEquals("hdhd0244k9j7ao03", extracted.getSecret()); } + + @Test + public void shouldExtractTokenWithEmptySecret() + { + String response = "oauth_token=hh5s93j4hdidpola&oauth_token_secret="; + Token extracted = extractor.extract(response); + assertEquals("hh5s93j4hdidpola", extracted.getToken()); + assertEquals("", extracted.getSecret()); + } @Test(expected = OAuthException.class) public void shouldThrowExceptionIfTokenIsAbsent()