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 {