From beff8a208e1f05cc4b0f1a07bd881cd8d5084bd8 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Mon, 11 Feb 2019 18:51:51 +1100 Subject: [PATCH 1/4] Issue #3165 - rearrange packages for javax-websocket-server tests Signed-off-by: Lachlan Roberts --- .../browser}/JsrBrowserConfigurator.java | 9 ++++---- .../server/browser}/JsrBrowserDebugTool.java | 2 +- .../server/browser}/JsrBrowserSocket.java | 21 ++++++++++--------- .../examples/GetHttpSessionConfigurator.java | 2 +- .../examples/GetHttpSessionSocket.java | 5 +++-- .../examples/MyAuthedConfigurator.java | 5 +++-- .../server}/examples/MyAuthedSocket.java | 2 +- .../server}/examples/StreamingEchoSocket.java | 11 +++++----- 8 files changed, 31 insertions(+), 26 deletions(-) rename jetty-websocket/javax-websocket-server/src/test/java/{examples => org/eclipse/jetty/websocket/javax/server/browser}/JsrBrowserConfigurator.java (96%) rename jetty-websocket/javax-websocket-server/src/test/java/{examples => org/eclipse/jetty/websocket/javax/server/browser}/JsrBrowserDebugTool.java (98%) rename jetty-websocket/javax-websocket-server/src/test/java/{examples => org/eclipse/jetty/websocket/javax/server/browser}/JsrBrowserSocket.java (99%) rename jetty-websocket/javax-websocket-server/src/test/java/{ => org/eclipse/jetty/websocket/javax/server}/examples/GetHttpSessionConfigurator.java (95%) rename jetty-websocket/javax-websocket-server/src/test/java/{ => org/eclipse/jetty/websocket/javax/server}/examples/GetHttpSessionSocket.java (96%) rename jetty-websocket/javax-websocket-server/src/test/java/{ => org/eclipse/jetty/websocket/javax/server}/examples/MyAuthedConfigurator.java (96%) rename jetty-websocket/javax-websocket-server/src/test/java/{ => org/eclipse/jetty/websocket/javax/server}/examples/MyAuthedSocket.java (95%) rename jetty-websocket/javax-websocket-server/src/test/java/{ => org/eclipse/jetty/websocket/javax/server}/examples/StreamingEchoSocket.java (95%) diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserConfigurator.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserConfigurator.java similarity index 96% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserConfigurator.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserConfigurator.java index 49d770530e71..1c4105122c82 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserConfigurator.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserConfigurator.java @@ -16,16 +16,17 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.browser; -import org.eclipse.jetty.http.QuotedCSV; +import java.util.Collections; +import java.util.List; import javax.websocket.Extension; import javax.websocket.HandshakeResponse; import javax.websocket.server.HandshakeRequest; import javax.websocket.server.ServerEndpointConfig; -import java.util.Collections; -import java.util.List; + +import org.eclipse.jetty.http.QuotedCSV; public class JsrBrowserConfigurator extends ServerEndpointConfig.Configurator { diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserDebugTool.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserDebugTool.java similarity index 98% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserDebugTool.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserDebugTool.java index 75afd0e50cf5..21563f1ed7c7 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserDebugTool.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserDebugTool.java @@ -16,7 +16,7 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.browser; import java.io.IOException; import java.net.MalformedURLException; diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserSocket.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserSocket.java similarity index 99% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserSocket.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserSocket.java index a9e9c2915989..95ebf8fad8e9 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/JsrBrowserSocket.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/browser/JsrBrowserSocket.java @@ -16,11 +16,14 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.browser; -import org.eclipse.jetty.util.StringUtil; -import org.eclipse.jetty.util.log.Log; -import org.eclipse.jetty.util.log.Logger; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Locale; +import java.util.Random; +import java.util.Set; import javax.websocket.CloseReason; import javax.websocket.OnClose; @@ -29,12 +32,10 @@ import javax.websocket.RemoteEndpoint.Async; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Locale; -import java.util.Random; -import java.util.Set; + +import org.eclipse.jetty.util.StringUtil; +import org.eclipse.jetty.util.log.Log; +import org.eclipse.jetty.util.log.Logger; @ServerEndpoint(value = "/", subprotocols = { "tool" }, configurator = JsrBrowserConfigurator.class) public class JsrBrowserSocket diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionConfigurator.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionConfigurator.java similarity index 95% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionConfigurator.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionConfigurator.java index c96964b5ea34..3e8850bd06b5 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionConfigurator.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionConfigurator.java @@ -16,7 +16,7 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.examples; import javax.servlet.http.HttpSession; import javax.websocket.HandshakeResponse; diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionSocket.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionSocket.java similarity index 96% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionSocket.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionSocket.java index 305a6e112c08..926c369a3571 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/GetHttpSessionSocket.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/GetHttpSessionSocket.java @@ -16,7 +16,9 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.examples; + +import java.io.IOException; import javax.servlet.http.HttpSession; import javax.websocket.EndpointConfig; @@ -24,7 +26,6 @@ import javax.websocket.OnOpen; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; -import java.io.IOException; @ServerEndpoint(value = "/example", configurator = GetHttpSessionConfigurator.class) public class GetHttpSessionSocket diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedConfigurator.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedConfigurator.java similarity index 96% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedConfigurator.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedConfigurator.java index 000c8e3c9c97..e13d7de1eda4 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedConfigurator.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedConfigurator.java @@ -16,12 +16,13 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.examples; + +import java.security.Principal; import javax.websocket.HandshakeResponse; import javax.websocket.server.HandshakeRequest; import javax.websocket.server.ServerEndpointConfig; -import java.security.Principal; public class MyAuthedConfigurator extends ServerEndpointConfig.Configurator { diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedSocket.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedSocket.java similarity index 95% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedSocket.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedSocket.java index 74fe7c3e1c9f..f09d8f175843 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/MyAuthedSocket.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/MyAuthedSocket.java @@ -16,7 +16,7 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.examples; import javax.websocket.OnMessage; import javax.websocket.server.ServerEndpoint; diff --git a/jetty-websocket/javax-websocket-server/src/test/java/examples/StreamingEchoSocket.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/StreamingEchoSocket.java similarity index 95% rename from jetty-websocket/javax-websocket-server/src/test/java/examples/StreamingEchoSocket.java rename to jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/StreamingEchoSocket.java index 7cf4448beaec..9fd77e690332 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/examples/StreamingEchoSocket.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/examples/StreamingEchoSocket.java @@ -16,16 +16,17 @@ // ======================================================================== // -package examples; +package org.eclipse.jetty.websocket.javax.server.examples; -import org.eclipse.jetty.util.IO; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; import javax.websocket.OnMessage; import javax.websocket.Session; import javax.websocket.server.ServerEndpoint; -import java.io.IOException; -import java.io.Reader; -import java.io.Writer; + +import org.eclipse.jetty.util.IO; @ServerEndpoint("/echo") public class StreamingEchoSocket From 1e93a46eed63dcdf4f0db847aad2d27eccc0226b Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Wed, 13 Feb 2019 17:50:20 +1100 Subject: [PATCH 2/4] Issue #3165 - added test for examples in javax-websocket-server Signed-off-by: Lachlan Roberts --- .../server/WebSocketServerExamplesTest.java | 192 ++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java diff --git a/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java new file mode 100644 index 000000000000..a1202548311c --- /dev/null +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java @@ -0,0 +1,192 @@ +package org.eclipse.jetty.websocket.javax.server; + +import java.net.URI; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +import javax.websocket.ClientEndpoint; +import javax.websocket.CloseReason; +import javax.websocket.ContainerProvider; +import javax.websocket.OnClose; +import javax.websocket.OnError; +import javax.websocket.OnMessage; +import javax.websocket.OnOpen; +import javax.websocket.Session; +import javax.websocket.WebSocketContainer; +import javax.websocket.server.ServerContainer; + +import org.eclipse.jetty.client.HttpClient; +import org.eclipse.jetty.client.api.AuthenticationStore; +import org.eclipse.jetty.client.util.BasicAuthentication; +import org.eclipse.jetty.security.ConstraintMapping; +import org.eclipse.jetty.security.ConstraintSecurityHandler; +import org.eclipse.jetty.security.HashLoginService; +import org.eclipse.jetty.security.SecurityHandler; +import org.eclipse.jetty.security.UserStore; +import org.eclipse.jetty.security.authentication.BasicAuthenticator; +import org.eclipse.jetty.server.Server; +import org.eclipse.jetty.server.ServerConnector; +import org.eclipse.jetty.servlet.ServletContextHandler; +import org.eclipse.jetty.util.security.Constraint; +import org.eclipse.jetty.util.security.Credential; +import org.eclipse.jetty.util.ssl.SslContextFactory; +import org.eclipse.jetty.websocket.core.client.WebSocketCoreClient; +import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientContainer; +import org.eclipse.jetty.websocket.javax.server.examples.GetHttpSessionSocket; +import org.eclipse.jetty.websocket.javax.server.examples.MyAuthedSocket; +import org.eclipse.jetty.websocket.javax.server.examples.StreamingEchoSocket; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +public class WebSocketServerExamplesTest +{ + @ClientEndpoint + public static class ClientSocket + { + CountDownLatch closed = new CountDownLatch(1); + ArrayBlockingQueue messageQueue = new ArrayBlockingQueue<>(2); + + @OnOpen + public void onOpen(Session sess) + { + System.err.println("ClientSocket Connected: " + sess); + } + + @OnMessage + public void onMessage(String message) + { + messageQueue.offer(message); + System.err.println("Received TEXT message: " + message); + } + + @OnClose + public void onClose(CloseReason closeReason) + { + System.err.println("ClientSocket Closed: " + closeReason); + closed.countDown(); + } + + @OnError + public void onError(Throwable cause) + { + cause.printStackTrace(System.err); + } + } + + static Server _server; + static ServletContextHandler _context; + + @BeforeAll + public static void setup() throws Exception + { + _server = new Server(); + ServerConnector connector = new ServerConnector(_server); + connector.setPort(8080); + _server.addConnector(connector); + + _context = new ServletContextHandler(ServletContextHandler.SESSIONS); + _context.setContextPath("/"); + _context.setSecurityHandler(getSecurityHandler("user", "password", "testRealm")); + _server.setHandler(_context); + + ServerContainer serverContainer = JavaxWebSocketServletContainerInitializer.configureContext(_context); + serverContainer.addEndpoint(MyAuthedSocket.class); + serverContainer.addEndpoint(StreamingEchoSocket.class); + serverContainer.addEndpoint(GetHttpSessionSocket.class); + + _server.start(); + } + + @AfterAll + public static void stop() throws Exception + { + _server.stop(); + } + + private static SecurityHandler getSecurityHandler(String username, String password, String realm) { + + HashLoginService loginService = new HashLoginService(); + UserStore userStore = new UserStore(); + userStore.addUser(username, Credential.getCredential(password), new String[] {"websocket"}); + loginService.setUserStore(userStore); + loginService.setName(realm); + + Constraint constraint = new Constraint(); + constraint.setName("auth"); + constraint.setAuthenticate(true); + constraint.setRoles(new String[]{"**"}); + + ConstraintMapping mapping = new ConstraintMapping(); + mapping.setPathSpec("/secured/socket/*"); + mapping.setConstraint(constraint); + + ConstraintSecurityHandler security = new ConstraintSecurityHandler(); + security.addConstraintMapping(mapping); + security.setAuthenticator(new BasicAuthenticator()); + security.setLoginService(loginService); + + return security; + } + + @Test + public void testMyAuthedSocket() throws Exception + { + URI uri = URI.create("ws://localhost:8080/secured/socket"); + HttpClient client = new HttpClient(new SslContextFactory()); // TODO: use HttpClientProvider from issue #3341 + AuthenticationStore authenticationStore = client.getAuthenticationStore(); + authenticationStore.addAuthentication(new BasicAuthentication(uri, "testRealm", "user", "password")); + JavaxWebSocketClientContainer clientContainer = new JavaxWebSocketClientContainer(new WebSocketCoreClient(client)); + clientContainer.start(); // TODO: use container provider + + ClientSocket clientEndpoint = new ClientSocket(); + try(Session session = clientContainer.connectToServer(clientEndpoint, uri)) + { + session.getBasicRemote().sendText("hello world"); + } + clientEndpoint.closed.await(5, TimeUnit.SECONDS); + + String msg = clientEndpoint.messageQueue.poll(5, TimeUnit.SECONDS); + assertThat(msg, is("hello world")); + + clientContainer.stop(); + } + + @Test + public void testStreamingEchoSocket() throws Exception + { + URI uri = URI.create("ws://localhost:8080/echo"); + WebSocketContainer clientContainer = ContainerProvider.getWebSocketContainer(); + + ClientSocket clientEndpoint = new ClientSocket(); + try(Session session = clientContainer.connectToServer(clientEndpoint, uri)) + { + session.getBasicRemote().sendText("hello world"); + } + clientEndpoint.closed.await(5, TimeUnit.SECONDS); + + String msg = clientEndpoint.messageQueue.poll(5, TimeUnit.SECONDS); + assertThat(msg, is("hello world")); + } + + @Test + public void testGetHttpSessionSocket() throws Exception + { + URI uri = URI.create("ws://localhost:8080/example"); + WebSocketContainer clientContainer = ContainerProvider.getWebSocketContainer(); + + ClientSocket clientEndpoint = new ClientSocket(); + try(Session session = clientContainer.connectToServer(clientEndpoint, uri)) + { + session.getBasicRemote().sendText("hello world"); + } + clientEndpoint.closed.await(5, TimeUnit.SECONDS); + + String msg = clientEndpoint.messageQueue.poll(5, TimeUnit.SECONDS); + assertThat(msg, is("hello world")); + } +} From 4378f5d08e917e1995628902d5840a4f9a016180 Mon Sep 17 00:00:00 2001 From: Lachlan Roberts Date: Mon, 18 Feb 2019 14:16:04 +1100 Subject: [PATCH 3/4] Issue #3165 - Configure the HttpClient via XmlHttpClientProvider Signed-off-by: Lachlan Roberts --- .../server/WebSocketServerExamplesTest.java | 33 +++++++++++-------- .../resources/jetty-websocket-httpclient.xml | 21 ++++++++++++ 2 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 jetty-websocket/javax-websocket-server/src/test/resources/jetty-websocket-httpclient.xml diff --git a/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java index a1202548311c..c9673d5aa8c2 100644 --- a/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java +++ b/jetty-websocket/javax-websocket-server/src/test/java/org/eclipse/jetty/websocket/javax/server/WebSocketServerExamplesTest.java @@ -1,3 +1,21 @@ +// +// ======================================================================== +// Copyright (c) 1995-2019 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + package org.eclipse.jetty.websocket.javax.server; import java.net.URI; @@ -16,9 +34,6 @@ import javax.websocket.WebSocketContainer; import javax.websocket.server.ServerContainer; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.api.AuthenticationStore; -import org.eclipse.jetty.client.util.BasicAuthentication; import org.eclipse.jetty.security.ConstraintMapping; import org.eclipse.jetty.security.ConstraintSecurityHandler; import org.eclipse.jetty.security.HashLoginService; @@ -30,9 +45,6 @@ import org.eclipse.jetty.servlet.ServletContextHandler; import org.eclipse.jetty.util.security.Constraint; import org.eclipse.jetty.util.security.Credential; -import org.eclipse.jetty.util.ssl.SslContextFactory; -import org.eclipse.jetty.websocket.core.client.WebSocketCoreClient; -import org.eclipse.jetty.websocket.javax.client.JavaxWebSocketClientContainer; import org.eclipse.jetty.websocket.javax.server.examples.GetHttpSessionSocket; import org.eclipse.jetty.websocket.javax.server.examples.MyAuthedSocket; import org.eclipse.jetty.websocket.javax.server.examples.StreamingEchoSocket; @@ -136,12 +148,9 @@ private static SecurityHandler getSecurityHandler(String username, String passwo @Test public void testMyAuthedSocket() throws Exception { + //HttpClient is configured for BasicAuthentication with the XmlHttpClientProvider URI uri = URI.create("ws://localhost:8080/secured/socket"); - HttpClient client = new HttpClient(new SslContextFactory()); // TODO: use HttpClientProvider from issue #3341 - AuthenticationStore authenticationStore = client.getAuthenticationStore(); - authenticationStore.addAuthentication(new BasicAuthentication(uri, "testRealm", "user", "password")); - JavaxWebSocketClientContainer clientContainer = new JavaxWebSocketClientContainer(new WebSocketCoreClient(client)); - clientContainer.start(); // TODO: use container provider + WebSocketContainer clientContainer = ContainerProvider.getWebSocketContainer(); ClientSocket clientEndpoint = new ClientSocket(); try(Session session = clientContainer.connectToServer(clientEndpoint, uri)) @@ -152,8 +161,6 @@ public void testMyAuthedSocket() throws Exception String msg = clientEndpoint.messageQueue.poll(5, TimeUnit.SECONDS); assertThat(msg, is("hello world")); - - clientContainer.stop(); } @Test diff --git a/jetty-websocket/javax-websocket-server/src/test/resources/jetty-websocket-httpclient.xml b/jetty-websocket/javax-websocket-server/src/test/resources/jetty-websocket-httpclient.xml new file mode 100644 index 000000000000..5530e171db79 --- /dev/null +++ b/jetty-websocket/javax-websocket-server/src/test/resources/jetty-websocket-httpclient.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + testRealm + user + password + + + + + \ No newline at end of file From 58c0808f19ad7888588e2c8e0d38a8774553b4cd Mon Sep 17 00:00:00 2001 From: lachan-roberts Date: Wed, 20 Feb 2019 15:15:12 +1100 Subject: [PATCH 4/4] Issue #3165 - fix to javax-websocket-server module issues Signed-off-by: lachan-roberts --- jetty-websocket/javax-websocket-server/pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/jetty-websocket/javax-websocket-server/pom.xml b/jetty-websocket/javax-websocket-server/pom.xml index a72983d8b941..fb8cd88ff592 100644 --- a/jetty-websocket/javax-websocket-server/pom.xml +++ b/jetty-websocket/javax-websocket-server/pom.xml @@ -50,6 +50,8 @@ @{argLine} ${jetty.surefire.argLine} + --add-opens org.eclipse.jetty.websocket.javax.server/org.eclipse.jetty.websocket.javax.server.examples=org.eclipse.jetty.websocket.javax.common + --add-reads org.eclipse.jetty.websocket.javax.server=org.eclipse.jetty.security --add-reads org.eclipse.jetty.websocket.javax.common=org.eclipse.jetty.websocket.javax.server