This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 8.5.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push:
new f81d0719c4 Align with 9.0.x
f81d0719c4 is described below
commit f81d0719c479e89df05346af5170dda30c4d07d9
Author: Mark Thomas <[email protected]>
AuthorDate: Wed Mar 8 19:15:28 2023 +0000
Align with 9.0.x
---
.../websocket/AsyncChannelWrapperSecure.java | 1 +
.../apache/tomcat/websocket/PerMessageDeflate.java | 6 +-
.../tomcat/websocket/TestWsWebSocketContainer.java | 60 -----------------
.../websocket/TestWsWebSocketContainerSSL.java | 76 ++++++++++++++++++++++
.../tomcat/websocket/server/TestCloseBug58624.java | 2 +-
.../websocket/server/TestWsServerContainer.java | 2 +-
6 files changed, 82 insertions(+), 65 deletions(-)
diff --git a/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
b/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
index 085e05cbe0..6e6888494f 100644
--- a/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
+++ b/java/org/apache/tomcat/websocket/AsyncChannelWrapperSecure.java
@@ -388,6 +388,7 @@ public class AsyncChannelWrapperSecure implements
AsyncChannelWrapper {
break;
}
case NOT_HANDSHAKING: {
+ // Don't expect to see this during a handshake
throw new
SSLException(sm.getString("asyncChannelWrapperSecure.notHandshaking"));
}
}
diff --git a/java/org/apache/tomcat/websocket/PerMessageDeflate.java
b/java/org/apache/tomcat/websocket/PerMessageDeflate.java
index eaaf4b6c67..4bc97b8199 100644
--- a/java/org/apache/tomcat/websocket/PerMessageDeflate.java
+++ b/java/org/apache/tomcat/websocket/PerMessageDeflate.java
@@ -94,7 +94,7 @@ public class PerMessageDeflate implements Transformation {
throw new
IllegalArgumentException(sm.getString("perMessageDeflate.invalidWindowSize",
SERVER_MAX_WINDOW_BITS,
Integer.valueOf(serverMaxWindowBits)));
}
- // Java SE API (as of Java 8) does not expose the API
to
+ // Java SE API (as of Java 11) does not expose the API
to
// control the Window size. It is effectively
hard-coded
// to 15
if (isServer && serverMaxWindowBits != 15) {
@@ -114,7 +114,7 @@ public class PerMessageDeflate implements Transformation {
if (clientMaxWindowBits == -1) {
if (param.getValue() == null) {
// Hint to server that the client supports this
- // option. Java SE API (as of Java 8) does not
+ // option. Java SE API (as of Java 11) does not
// expose the API to control the Window size. It is
// effectively hard-coded to 15
clientMaxWindowBits = 15;
@@ -125,7 +125,7 @@ public class PerMessageDeflate implements Transformation {
CLIENT_MAX_WINDOW_BITS,
Integer.valueOf(clientMaxWindowBits)));
}
}
- // Java SE API (as of Java 8) does not expose the API
to
+ // Java SE API (as of Java 11) does not expose the API
to
// control the Window size. It is effectively
hard-coded
// to 15
if (!isServer && clientMaxWindowBits != 15) {
diff --git a/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
index f14809fab4..1fab006848 100644
--- a/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
+++ b/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
@@ -16,13 +16,9 @@
*/
package org.apache.tomcat.websocket;
-import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
-import java.io.InputStream;
import java.net.URI;
import java.nio.ByteBuffer;
-import java.security.KeyStore;
import java.util.ArrayList;
import java.util.List;
import java.util.Queue;
@@ -30,8 +26,6 @@ import java.util.Set;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManagerFactory;
import javax.servlet.ServletContextEvent;
import javax.websocket.ClientEndpointConfig;
import javax.websocket.ContainerProvider;
@@ -52,7 +46,6 @@ import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.servlets.DefaultServlet;
import org.apache.catalina.startup.Tomcat;
-import org.apache.tomcat.util.net.TesterSupport;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicBinary;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicHandler;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicText;
@@ -514,59 +507,6 @@ public class TestWsWebSocketContainer extends
WsWebSocketContainerBaseTest {
}
- @Test
- public void testConnectToServerEndpointSSL() throws Exception {
-
- Tomcat tomcat = getTomcatInstance();
- // No file system docBase required
- Context ctx = tomcat.addContext("", null);
- ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
- Tomcat.addServlet(ctx, "default", new DefaultServlet());
- ctx.addServletMappingDecoded("/", "default");
-
- TesterSupport.initSsl(tomcat);
-
- tomcat.start();
-
- WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
- ClientEndpointConfig clientEndpointConfig =
ClientEndpointConfig.Builder.create().build();
-
- // Create the SSL Context
- // Java 7 doesn't default to TLSv1.2 but the tests do
- SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
-
- // Trust store
- File keyStoreFile = new File(TesterSupport.CA_JKS);
- KeyStore ks = KeyStore.getInstance("JKS");
- try (InputStream is = new FileInputStream(keyStoreFile)) {
- ks.load(is,
org.apache.tomcat.websocket.Constants.SSL_TRUSTSTORE_PWD_DEFAULT.toCharArray());
- }
-
- TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
- tmf.init(ks);
-
- sslContext.init(null, tmf.getTrustManagers(), null);
-
-
clientEndpointConfig.getUserProperties().put(org.apache.tomcat.websocket.Constants.SSL_CONTEXT_PROPERTY,
- sslContext);
-
- Session wsSession =
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
clientEndpointConfig,
- new URI("wss://" + getHostName() + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
- CountDownLatch latch = new CountDownLatch(1);
- BasicText handler = new BasicText(latch);
- wsSession.addMessageHandler(handler);
- wsSession.getBasicRemote().sendText(MESSAGE_STRING_1);
-
- boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
-
- Assert.assertTrue(latchResult);
-
- Queue<String> messages = handler.getMessages();
- Assert.assertEquals(1, messages.size());
- Assert.assertEquals(MESSAGE_STRING_1, messages.peek());
- }
-
-
@Test
public void testMaxMessageSize01() throws Exception {
doMaxMessageSize(TesterEchoServer.Config.PATH_BASIC_LIMIT_LOW,
TesterEchoServer.BasicLimitLow.MAX_SIZE - 1,
diff --git a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
new file mode 100644
index 0000000000..eb44ac6aed
--- /dev/null
+++ b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tomcat.websocket;
+
+import java.net.URI;
+import java.util.Queue;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import javax.websocket.ClientEndpointConfig;
+import javax.websocket.ContainerProvider;
+import javax.websocket.Session;
+import javax.websocket.WebSocketContainer;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import org.apache.catalina.Context;
+import org.apache.catalina.servlets.DefaultServlet;
+import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.net.TesterSupport;
+import org.apache.tomcat.websocket.TesterMessageCountClient.BasicText;
+import
org.apache.tomcat.websocket.TesterMessageCountClient.TesterProgrammaticEndpoint;
+
+public class TestWsWebSocketContainerSSL extends WebSocketBaseTest {
+
+ private static final String MESSAGE_STRING_1 = "qwerty";
+
+ @Test
+ public void testConnectToServerEndpointSSL() throws Exception {
+
+ Tomcat tomcat = getTomcatInstance();
+ // No file system docBase required
+ Context ctx = tomcat.addContext("", null);
+ ctx.addApplicationListener(TesterEchoServer.Config.class.getName());
+ Tomcat.addServlet(ctx, "default", new DefaultServlet());
+ ctx.addServletMappingDecoded("/", "default");
+
+ TesterSupport.initSsl(tomcat);
+
+ tomcat.start();
+
+ WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
+ ClientEndpointConfig clientEndpointConfig =
ClientEndpointConfig.Builder.create().build();
+
clientEndpointConfig.getUserProperties().put(org.apache.tomcat.websocket.Constants.SSL_TRUSTSTORE_PROPERTY,
+ TesterSupport.CA_JKS);
+ Session wsSession =
wsContainer.connectToServer(TesterProgrammaticEndpoint.class,
clientEndpointConfig,
+ new URI("wss://localhost" + ":" + getPort() +
TesterEchoServer.Config.PATH_ASYNC));
+ CountDownLatch latch = new CountDownLatch(1);
+ BasicText handler = new BasicText(latch);
+ wsSession.addMessageHandler(handler);
+ wsSession.getBasicRemote().sendText(MESSAGE_STRING_1);
+
+ boolean latchResult = handler.getLatch().await(10, TimeUnit.SECONDS);
+
+ Assert.assertTrue(latchResult);
+
+ Queue<String> messages = handler.getMessages();
+ Assert.assertEquals(1, messages.size());
+ Assert.assertEquals(MESSAGE_STRING_1, messages.peek());
+ }
+}
diff --git a/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
b/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
index 169bdbde13..2d128d58a2 100644
--- a/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
+++ b/test/org/apache/tomcat/websocket/server/TestCloseBug58624.java
@@ -89,7 +89,7 @@ public class TestCloseBug58624 extends WebSocketBaseTest {
}
@ClientEndpoint
- public class Bug58624ClientEndpoint {
+ public static class Bug58624ClientEndpoint {
private volatile Throwable t;
diff --git a/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
b/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
index a165685627..410ff924a6 100644
--- a/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
+++ b/test/org/apache/tomcat/websocket/server/TestWsServerContainer.java
@@ -77,7 +77,7 @@ public class TestWsServerContainer extends WebSocketBaseTest {
SimpleClient client = new SimpleClient();
URI uri = new URI("ws://localhost:" + getPort() + "/echoBasic");
- try (Session session = wsContainer.connectToServer(client, uri);) {
+ try (Session session = wsContainer.connectToServer(client, uri)) {
CountDownLatch latch = new CountDownLatch(1);
BasicText handler = new BasicText(latch);
session.addMessageHandler(handler);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]