diff options
author | Joakim Erdfelt | 2015-03-06 22:19:03 +0000 |
---|---|---|
committer | Joakim Erdfelt | 2015-03-06 22:19:41 +0000 |
commit | 2ceaf6e65ce3d3393695a6678242ae05f57d7dc8 (patch) | |
tree | 86106d607e1466c7c464bab0a532f3b6cb1c2d2a /jetty-websocket | |
parent | 9edd7c4b30f8a85ada4195476169a12999ba5b60 (diff) | |
download | org.eclipse.jetty.project-2ceaf6e65ce3d3393695a6678242ae05f57d7dc8.tar.gz org.eclipse.jetty.project-2ceaf6e65ce3d3393695a6678242ae05f57d7dc8.tar.xz org.eclipse.jetty.project-2ceaf6e65ce3d3393695a6678242ae05f57d7dc8.zip |
460769 - ClientUpgradeRequest sends cookies in the wrong format
+ Simplifying HTTP Client "Cookie:" header based on rfcs
Diffstat (limited to 'jetty-websocket')
2 files changed, 20 insertions, 2 deletions
diff --git a/jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java b/jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java index b70cad7e17..ac5873dc5e 100644 --- a/jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java +++ b/jetty-websocket/websocket-client/src/main/java/org/eclipse/jetty/websocket/client/ClientUpgradeRequest.java @@ -168,7 +168,17 @@ public class ClientUpgradeRequest extends UpgradeRequest { request.append("; "); } - request.append(cookie.toString()); + + request.append(cookie.getName()).append("="); + if (cookie.getVersion() == 1) + { + // must be enclosed with quotes + request.append('"').append(cookie.getValue()).append('"'); + } + else + { + request.append(cookie.getValue()); + } needDelim = true; } request.append("\r\n"); diff --git a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/CookieTest.java b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/CookieTest.java index 9dfc87d3ae..a68c245057 100644 --- a/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/CookieTest.java +++ b/jetty-websocket/websocket-client/src/test/java/org/eclipse/jetty/websocket/client/CookieTest.java @@ -19,6 +19,7 @@ package org.eclipse.jetty.websocket.client; import static org.hamcrest.Matchers.*; +import static org.junit.Assert.*; import java.net.CookieManager; import java.net.HttpCookie; @@ -104,6 +105,12 @@ public class CookieTest client.setCookieStore(cookieMgr.getCookieStore()); HttpCookie cookie = new HttpCookie("hello","world"); cookie.setPath("/"); + cookie.setVersion(0); + cookie.setMaxAge(100000); + cookieMgr.getCookieStore().add(server.getWsUri(),cookie); + + cookie = new HttpCookie("foo","bar is the word"); + cookie.setPath("/"); cookie.setMaxAge(100000); cookieMgr.getCookieStore().add(server.getWsUri(),cookie); @@ -117,7 +124,8 @@ public class CookieTest // client confirms upgrade and receipt of frame String serverCookies = confirmClientUpgradeAndCookies(clientSocket,clientConnectFuture,serverConn); - Assert.assertThat("Cookies seen at server side",serverCookies,containsString("hello=\"world\"")); + assertThat("Cookies seen at server side",serverCookies,containsString("hello=world")); + assertThat("Cookies seen at server side",serverCookies,containsString("foo=\"bar is the word\"")); } @Test |