This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/main by this push:
new ec03e1e Fix deprecation warnings
ec03e1e is described below
commit ec03e1e9e47da3339faa1252a6f5432abf1b3e9e
Author: Mark Thomas <[email protected]>
AuthorDate: Tue Dec 21 15:02:50 2021 +0000
Fix deprecation warnings
---
.../tomcat/websocket/WsWebSocketContainer.java | 1 +
.../websocket/TestWebSocketFrameClientSSL.java | 140 ++++++++++++++++++++-
.../websocket/TestWsWebSocketContainerSSL.java | 3 +-
3 files changed, 141 insertions(+), 3 deletions(-)
diff --git a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
index e6c5f92..608e854 100644
--- a/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
+++ b/java/org/apache/tomcat/websocket/WsWebSocketContainer.java
@@ -900,6 +900,7 @@ public class WsWebSocketContainer implements
WebSocketContainer, BackgroundProce
}
+ @SuppressWarnings("removal")
private SSLEngine createSSLEngine(ClientEndpointConfig
clientEndpointConfig, String host, int port)
throws DeploymentException {
diff --git a/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
b/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
index 8adc942..4323cb9 100644
--- a/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
+++ b/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
@@ -16,7 +16,11 @@
*/
package org.apache.tomcat.websocket;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.net.URI;
+import java.security.KeyStore;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -24,6 +28,9 @@ import java.util.Queue;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManagerFactory;
+
import jakarta.websocket.ClientEndpointConfig;
import jakarta.websocket.ContainerProvider;
import jakarta.websocket.MessageHandler;
@@ -43,6 +50,7 @@ import org.apache.catalina.core.StandardServer;
import org.apache.catalina.servlets.DefaultServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.tomcat.util.net.TesterSupport;
+import org.apache.tomcat.util.security.KeyStoreUtil;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicText;
import org.apache.tomcat.websocket.TesterMessageCountClient.SleepingText;
import
org.apache.tomcat.websocket.TesterMessageCountClient.TesterProgrammaticEndpoint;
@@ -73,8 +81,9 @@ public class TestWebSocketFrameClientSSL extends
WebSocketBaseTest {
public String sslImplementationName;
+ @SuppressWarnings("removal")
@Test
- public void testConnectToServerEndpoint() throws Exception {
+ public void testConnectToServerEndpointLegacy() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
@@ -119,7 +128,62 @@ public class TestWebSocketFrameClientSSL extends
WebSocketBaseTest {
@Test
- public void testBug56032() throws Exception {
+ public void testConnectToServerEndpoint() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+ // No file system docBase required
+ Context ctx = tomcat.addContext("", null);
+
ctx.addApplicationListener(TesterFirehoseServer.ConfigInline.class.getName());
+ Tomcat.addServlet(ctx, "default", new DefaultServlet());
+ ctx.addServletMappingDecoded("/", "default");
+
+ tomcat.start();
+
+ WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
+
+ // Build the SSLContext
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ File trustStoreFile = new File(TesterSupport.CA_JKS);
+ KeyStore ks = KeyStore.getInstance("JKS");
+ try (InputStream is = new FileInputStream(trustStoreFile)) {
+ KeyStoreUtil.load(ks, is, TesterSupport.JKS_PASS.toCharArray());
+ }
+ TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+ tmf.init(ks);
+ sslContext.init(null, tmf.getTrustManagers(), null);
+
+ ClientEndpointConfig clientEndpointConfig =
+
ClientEndpointConfig.Builder.create().sslContext(sslContext).build();
+
+ Session wsSession = wsContainer.connectToServer(
+ TesterProgrammaticEndpoint.class,
+ clientEndpointConfig,
+ new URI("wss://localhost:" + getPort() +
+ TesterFirehoseServer.PATH));
+ CountDownLatch latch =
+ new CountDownLatch(TesterFirehoseServer.MESSAGE_COUNT);
+ BasicText handler = new BasicText(latch);
+ wsSession.addMessageHandler(handler);
+ wsSession.getBasicRemote().sendText("Hello");
+
+ System.out.println("Sent Hello message, waiting for data");
+
+ // Ignore the latch result as the message count test below will tell us
+ // if the right number of messages arrived
+ handler.getLatch().await(TesterFirehoseServer.WAIT_TIME_MILLIS,
+ TimeUnit.MILLISECONDS);
+
+ Queue<String> messages = handler.getMessages();
+ Assert.assertEquals(
+ TesterFirehoseServer.MESSAGE_COUNT, messages.size());
+ for (String message : messages) {
+ Assert.assertEquals(TesterFirehoseServer.MESSAGE, message);
+ }
+ }
+
+
+ @SuppressWarnings("removal")
+ @Test
+ public void testBug56032Legacy() throws Exception {
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
@@ -181,6 +245,78 @@ public class TestWebSocketFrameClientSSL extends
WebSocketBaseTest {
}
+ @Test
+ public void testBug56032() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+ // No file system docBase required
+ Context ctx = tomcat.addContext("", null);
+
ctx.addApplicationListener(TesterFirehoseServer.ConfigInline.class.getName());
+ Tomcat.addServlet(ctx, "default", new DefaultServlet());
+ ctx.addServletMappingDecoded("/", "default");
+
+ tomcat.start();
+
+ WebSocketContainer wsContainer =
ContainerProvider.getWebSocketContainer();
+
+ // Build the SSLContext
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ File trustStoreFile = new File(TesterSupport.CA_JKS);
+ KeyStore ks = KeyStore.getInstance("JKS");
+ try (InputStream is = new FileInputStream(trustStoreFile)) {
+ KeyStoreUtil.load(ks, is, TesterSupport.JKS_PASS.toCharArray());
+ }
+ TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+ tmf.init(ks);
+ sslContext.init(null, tmf.getTrustManagers(), null);
+
+ ClientEndpointConfig clientEndpointConfig =
+
ClientEndpointConfig.Builder.create().sslContext(sslContext).build();
+
+ Session wsSession = wsContainer.connectToServer(
+ TesterProgrammaticEndpoint.class,
+ clientEndpointConfig,
+ new URI("wss://localhost:" + getPort() +
+ TesterFirehoseServer.PATH));
+
+ // Process incoming messages very slowly
+ MessageHandler handler = new SleepingText(5000);
+ wsSession.addMessageHandler(handler);
+ wsSession.getBasicRemote().sendText("Hello");
+
+ // Wait long enough for the buffers to fill and the send to timeout
+ int count = 0;
+ int limit = TesterFirehoseServer.WAIT_TIME_MILLIS / 100;
+
+ System.out.println("Waiting for server to report an error");
+ while (TesterFirehoseServer.Endpoint.getErrorCount() == 0 && count <
limit) {
+ Thread.sleep(100);
+ count ++;
+ }
+
+ if (TesterFirehoseServer.Endpoint.getErrorCount() == 0) {
+ Assert.fail("No error reported by Endpoint when timeout was
expected");
+ }
+
+ // Wait up to another 10 seconds for the connection to be closed -
+ // should be a lot faster.
+ System.out.println("Waiting for connection to be closed");
+ count = 0;
+ limit = (TesterFirehoseServer.SEND_TIME_OUT_MILLIS * 2) / 100;
+ while (TesterFirehoseServer.Endpoint.getOpenConnectionCount() != 0 &&
count < limit) {
+ Thread.sleep(100);
+ count ++;
+ }
+
+ int openConnectionCount =
TesterFirehoseServer.Endpoint.getOpenConnectionCount();
+ if (openConnectionCount != 0) {
+ Assert.fail("There are [" + openConnectionCount + "] connections
still open");
+ }
+
+ // Close the client session.
+ wsSession.close();
+ }
+
+
@Override
public void setUp() throws Exception {
super.setUp();
diff --git a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
index bcc0a24..9e5070d 100644
--- a/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
+++ b/test/org/apache/tomcat/websocket/TestWsWebSocketContainerSSL.java
@@ -81,6 +81,7 @@ public class TestWsWebSocketContainerSSL extends
WebSocketBaseTest {
private static final String MESSAGE_STRING_1 = "qwerty";
+ @SuppressWarnings("removal")
@Test
public void testConnectToServerEndpointSslLegacy() throws Exception {
@@ -139,7 +140,7 @@ public class TestWsWebSocketContainerSSL extends
WebSocketBaseTest {
File trustStoreFile = new File(TesterSupport.CA_JKS);
KeyStore ks = KeyStore.getInstance("JKS");
try (InputStream is = new FileInputStream(trustStoreFile)) {
- KeyStoreUtil.load(ks, is,
Constants.SSL_TRUSTSTORE_PWD_DEFAULT.toCharArray());
+ KeyStoreUtil.load(ks, is, TesterSupport.JKS_PASS.toCharArray());
}
TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]