Author: gagan
Date: Tue Jan  4 14:42:17 2011
New Revision: 1055063

URL: http://svn.apache.org/viewvc?rev=1055063&view=rev
Log:
patch by nikhilmadan23 | Issue 3778042: Pass cookies through in AccelHandler | 
http://codereview.appspot.com/3778042/

Modified:
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriUtils.java
    
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java?rev=1055063&r1=1055062&r2=1055063&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/AccelHandler.java
 Tue Jan  4 14:42:17 2011
@@ -99,9 +99,9 @@ public class AccelHandler {
     // response.
     HttpResponseBuilder response = new HttpResponseBuilder();
     UriUtils.copyResponseHeadersAndStatusCode(
-        results, response, remapInternalServerError, true,
+        results, response, remapInternalServerError, false,
         UriUtils.DisallowedHeaders.OUTPUT_TRANSFER_DIRECTIVES,
-        UriUtils.DisallowedHeaders.CLIENT_STATE_DIRECTIVES);
+        UriUtils.DisallowedHeaders.AUTHENTICATION_DIRECTIVES);
 
     // Override the content type of the final http response if the input 
request
     // had the rewrite mime type header.

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriUtils.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriUtils.java?rev=1055063&r1=1055062&r2=1055063&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriUtils.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/UriUtils.java
 Tue Jan  4 14:42:17 2011
@@ -62,7 +62,9 @@ public final class UriUtils {
     CACHING_DIRECTIVES(ImmutableSet.of("vary", "expires", "date", "pragma",
                                        "cache-control", "etag", 
"last-modified")),
 
-    CLIENT_STATE_DIRECTIVES(ImmutableSet.of("set-cookie", "www-authenticate")),
+    CLIENT_STATE_DIRECTIVES(ImmutableSet.of("set-cookie", "set-cookie2", 
"www-authenticate")),
+
+    AUTHENTICATION_DIRECTIVES(ImmutableSet.of("www-authenticate")),
 
     // Headers that the fetcher itself would like to fill. For example,
     // httpclient library crashes if Content-Length header is set in the

Modified: 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java?rev=1055063&r1=1055062&r2=1055063&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HtmlAccelServletTest.java
 Tue Jan  4 14:42:17 2011
@@ -306,4 +306,32 @@ public class HtmlAccelServletTest extend
     assertEquals(5001, recorder.getHttpStatusCode());
     assertFalse(rewriter.responseWasRewritten());
   }
+
+  @Test
+  public void testSetCookieHeadersPassed() throws Exception {
+    String url = "http://example.org/data.html";;
+    String data = "<html><body>Hello World</body></html>";
+
+    ((FakeCaptureRewriter) rewriter).setContentToRewrite(REWRITE_CONTENT);
+    HttpRequest req = new HttpRequest(Uri.parse(url));
+    req.addHeader("Host", Uri.parse(url).getAuthority());
+    HttpResponse resp = new HttpResponseBuilder()
+        .setResponse(data.getBytes())
+        .setHeader("Content-Type", "text/html")
+        .setHeader("Set-Cookie", "name=value")
+        .setHeader("Set-Cookie2", "name2=value2")
+        .setHttpStatusCode(200)
+        .create();
+    expect(pipeline.execute(req)).andReturn(resp).once();
+    expectRequest("", url);
+    replay();
+
+    servlet.doGet(request, recorder);
+    verify();
+    assertEquals(recorder.getHeader("Set-Cookie"), "name=value");
+    assertEquals(recorder.getHeader("Set-Cookie2"), "name2=value2");
+    assertEquals(REWRITE_CONTENT, recorder.getResponseAsString());
+    assertEquals(200, recorder.getHttpStatusCode());
+    assertTrue(rewriter.responseWasRewritten());    
+  }
 }


Reply via email to