You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by be...@apache.org on 2008/10/16 19:59:06 UTC
svn commit: r705294 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/oauth/
main/java/org/apache/shindig/gadgets/oauth/testing/
test/java/org/apache/shindig/gadgets/oauth/
Author: beaton
Date: Thu Oct 16 10:59:05 2008
New Revision: 705294
URL: http://svn.apache.org/viewvc?rev=705294&view=rev
Log:
Don't treat 404s as OAuth errors.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/testing/FakeOAuthServiceProvider.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java?rev=705294&r1=705293&r2=705294&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/OAuthFetcher.java Thu Oct 16 10:59:05 2008
@@ -675,8 +675,9 @@
* and/or access tokens.
*/
private boolean isFullOAuthError(HttpResponse response) {
- // Is this an error in the 4xx range? If so, it might be OAuth related.
- if (response.getHttpStatusCode() < 400 || response.getHttpStatusCode() >= 500) {
+ // 400, 401 and 403 are likely to be authentication errors.
+ if (response.getHttpStatusCode() != 400 && response.getHttpStatusCode() != 401 &&
+ response.getHttpStatusCode() != 403) {
return false;
}
// If the client forced us to use full OAuth, this might be OAuth related.
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/testing/FakeOAuthServiceProvider.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/testing/FakeOAuthServiceProvider.java?rev=705294&r1=705293&r2=705294&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/testing/FakeOAuthServiceProvider.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/oauth/testing/FakeOAuthServiceProvider.java Thu Oct 16 10:59:05 2008
@@ -54,14 +54,11 @@
public final static String SP_HOST = "http://www.example.com";
- public final static String REQUEST_TOKEN_URL =
- SP_HOST + "/request?param=foo";
- public final static String ACCESS_TOKEN_URL =
- SP_HOST + "/access";
- public final static String APPROVAL_URL =
- SP_HOST + "/authorize";
- public final static String RESOURCE_URL =
- SP_HOST + "/data";
+ public final static String REQUEST_TOKEN_URL = SP_HOST + "/request?param=foo";
+ public final static String ACCESS_TOKEN_URL = SP_HOST + "/access";
+ public final static String APPROVAL_URL = SP_HOST + "/authorize";
+ public final static String RESOURCE_URL = SP_HOST + "/data";
+ public final static String NOT_FOUND_URL = SP_HOST + "/404";
public final static String CONSUMER_KEY = "consumer";
public final static String CONSUMER_SECRET = "secret";
@@ -215,6 +212,8 @@
} else if (url.startsWith(RESOURCE_URL)){
++resourceAccessCount;
return handleResourceUrl(request);
+ } else if (url.startsWith(NOT_FOUND_URL)) {
+ return handleNotFoundUrl(request);
}
} catch (Exception e) {
throw new RuntimeException("Problem with request for URL " + url, e);
@@ -528,6 +527,13 @@
}
return resp.create();
}
+
+ private HttpResponse handleNotFoundUrl(HttpRequest request) throws Exception {
+ return new HttpResponseBuilder()
+ .setHttpStatusCode(HttpResponse.SC_NOT_FOUND)
+ .setResponseString("not found")
+ .create();
+ }
public void setConsumersThrottled(boolean throttled) {
this.throttled = throttled;
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java?rev=705294&r1=705293&r2=705294&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/oauth/OAuthFetcherTest.java Thu Oct 16 10:59:05 2008
@@ -421,6 +421,25 @@
assertEquals("403", metadata.get("oauthError"));
assertNull(metadata.get("oauthErrorText"));
}
+
+ @Test
+ public void testError404() throws Exception {
+ MakeRequestClient client = makeNonSocialClient("owner", "owner", GADGET_URL);
+
+ HttpResponse response = client.sendGet(FakeOAuthServiceProvider.RESOURCE_URL);
+ assertEquals("", response.getResponseAsString());
+ client.approveToken("user_data=hello-oauth");
+
+ response = client.sendGet(FakeOAuthServiceProvider.RESOURCE_URL + "?cachebust=1");
+ assertEquals("User data is hello-oauth", response.getResponseAsString());
+
+ response = client.sendGet(FakeOAuthServiceProvider.NOT_FOUND_URL);
+ assertEquals("not found", response.getResponseAsString());
+ assertEquals(404, response.getHttpStatusCode());
+
+ response = client.sendGet(FakeOAuthServiceProvider.RESOURCE_URL + "?cachebust=3");
+ assertEquals("User data is hello-oauth", response.getResponseAsString());
+ }
@Test
public void testConsumerThrottled() throws Exception {