WebSocketClientHandshaker.rawPath(URI) should use the raw query
Motivation: If the wsURL contains an encoded query, it will be decoded when generating the raw path. For example if the wsURL is http://test.org/path?a=1%3A5, the returned raw path would be /path?a=1:5 Modifications: Use wsURL.getRawQuery() rather than wsURL.getQuery() Result: rawPath will now return /path?a=1%3A5
This commit is contained in:
parent
75728faf9b
commit
baac352f74
@ -434,7 +434,7 @@ public abstract class WebSocketClientHandshaker {
|
|||||||
*/
|
*/
|
||||||
static String rawPath(URI wsURL) {
|
static String rawPath(URI wsURL) {
|
||||||
String path = wsURL.getRawPath();
|
String path = wsURL.getRawPath();
|
||||||
String query = wsURL.getQuery();
|
String query = wsURL.getRawQuery();
|
||||||
if (query != null && !query.isEmpty()) {
|
if (query != null && !query.isEmpty()) {
|
||||||
path = path + '?' + query;
|
path = path + '?' + query;
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,18 @@ public abstract class WebSocketClientHandshakerTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testRawPathWithQuery() {
|
||||||
|
URI uri = URI.create("ws://localhost:9999/path%20with%20ws?a=b%20c");
|
||||||
|
WebSocketClientHandshaker handshaker = newHandshaker(uri);
|
||||||
|
FullHttpRequest request = handshaker.newHandshakeRequest();
|
||||||
|
try {
|
||||||
|
assertEquals("/path%20with%20ws?a=b%20c", request.uri());
|
||||||
|
} finally {
|
||||||
|
request.release();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test(timeout = 3000)
|
@Test(timeout = 3000)
|
||||||
public void testHttpResponseAndFrameInSameBuffer() {
|
public void testHttpResponseAndFrameInSameBuffer() {
|
||||||
testHttpResponseAndFrameInSameBuffer(false);
|
testHttpResponseAndFrameInSameBuffer(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user