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());
+ }
}