Skip to content

Commit ec26e94

Browse files
committedJan 29, 2025··
W-16889209 | merge changes
1 parent 92b1a7c commit ec26e94

17 files changed

+2030
-21
lines changed
 

‎pom.xml

+60
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,63 @@
234234

235235
<build>
236236
<plugins>
237+
<plugin>
238+
<groupId>org.apache.maven.plugins</groupId>
239+
<artifactId>maven-surefire-plugin</artifactId>
240+
<version>2.19.1</version>
241+
<configuration>
242+
<argLine>-Dfile.encoding=UTF-8 -javaagent:${settings.localRepository}/org/aspectj/aspectjweaver/${aspectjVersion}/aspectjweaver-${aspectjVersion}.jar -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile='${session.executionRootDirectory}/target/jacoco.exec'</argLine>
243+
<properties>
244+
<property>
245+
<name>listener</name>
246+
<value>io.qameta.allure.junit4.AllureJunit4</value>
247+
</property>
248+
</properties>
249+
<systemPropertyVariables>
250+
<!-- Just propagate this variable due to surefire will not do this when forked vm for tests -->
251+
<mule.freePortFinder.lockPath>${java.io.tmpdir}/mule/freePortFinder</mule.freePortFinder.lockPath>
252+
<maven.projectVersion>${project.version}</maven.projectVersion>
253+
<activeMQPort>${activemq.listener.port}</activeMQPort>
254+
<activeMQSslPort>${activemq.ssl.listener.port}</activeMQSslPort>
255+
<buildDirectory>${project.build.directory}</buildDirectory>
256+
</systemPropertyVariables>
257+
<systemProperties>
258+
<property>
259+
<name>allure.results.directory</name>
260+
<value>${project.build.directory}/allure-results</value>
261+
</property>
262+
</systemProperties>
263+
<forkCount>1</forkCount>
264+
<reuseForks>false</reuseForks>
265+
<workingDirectory>${project.build.directory}</workingDirectory>
266+
</configuration>
267+
<dependencies>
268+
<dependency>
269+
<groupId>org.aspectj</groupId>
270+
<artifactId>aspectjweaver</artifactId>
271+
<version>${aspectjVersion}</version>
272+
</dependency>
273+
<dependency>
274+
<groupId>org.jacoco</groupId>
275+
<artifactId>org.jacoco.agent</artifactId>
276+
<version>${jacoco.version}</version>
277+
<classifier>runtime</classifier>
278+
</dependency>
279+
<!-- Add this dependency for JAXB API -->
280+
<dependency>
281+
<groupId>javax.xml.bind</groupId>
282+
<artifactId>jaxb-api</artifactId>
283+
<version>2.3.1</version>
284+
</dependency>
285+
286+
<!-- Add this dependency for JAXB runtime (optional, depending on your specific needs) -->
287+
<dependency>
288+
<groupId>org.glassfish.jaxb</groupId>
289+
<artifactId>jaxb-runtime</artifactId>
290+
<version>2.3.1</version>
291+
</dependency>
292+
</dependencies>
293+
</plugin>
237294
<plugin>
238295
<groupId>com.mycila</groupId>
239296
<artifactId>license-maven-plugin</artifactId>
@@ -366,6 +423,9 @@
366423
</execution>
367424
</executions>
368425
<configuration>
426+
<systemPropertyVariables>
427+
<jdk.tls.trustNameService>true</jdk.tls.trustNameService>
428+
</systemPropertyVariables>
369429
<argLines>
370430
<argLine>-javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${session.executionRootDirectory}/target/jacoco-munit.exec</argLine>
371431
</argLines>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
package org.apache.activemq.transport.tcp;
2+
3+
import java.io.IOException;
4+
import java.net.Socket;
5+
import java.net.SocketException;
6+
import java.net.URI;
7+
import java.net.UnknownHostException;
8+
import java.security.cert.X509Certificate;
9+
import java.util.Collections;
10+
11+
import javax.net.ssl.SNIHostName;
12+
import javax.net.ssl.SSLParameters;
13+
import javax.net.ssl.SSLPeerUnverifiedException;
14+
import javax.net.ssl.SSLSession;
15+
import javax.net.ssl.SSLSocket;
16+
import javax.net.ssl.SSLSocketFactory;
17+
18+
import org.apache.activemq.command.ConnectionInfo;
19+
import org.apache.activemq.wireformat.WireFormat;
20+
public class SslTransport extends TcpTransport {
21+
22+
/**
23+
* Default to null as there are different defaults between server and client, initialiseSocket
24+
* for more details
25+
*/
26+
private Boolean verifyHostName = null;
27+
28+
/**
29+
* Connect to a remote node such as a Broker.
30+
*
31+
* @param wireFormat The WireFormat to be used.
32+
* @param socketFactory The socket factory to be used. Forcing SSLSockets
33+
* for obvious reasons.
34+
* @param remoteLocation The remote location.
35+
* @param localLocation The local location.
36+
* @param needClientAuth If set to true, the underlying socket will need
37+
* client certificate authentication.
38+
* @throws UnknownHostException If TcpTransport throws.
39+
* @throws IOException If TcpTransport throws.
40+
*/
41+
@SuppressWarnings({ "unchecked", "rawtypes" })
42+
public SslTransport(WireFormat wireFormat, SSLSocketFactory socketFactory, URI remoteLocation, URI localLocation, boolean needClientAuth) throws IOException {
43+
super(wireFormat, socketFactory, remoteLocation, localLocation);
44+
if (this.socket != null) {
45+
((SSLSocket)this.socket).setNeedClientAuth(needClientAuth);
46+
}
47+
}
48+
49+
@Override
50+
protected void initialiseSocket(Socket sock) throws SocketException, IllegalArgumentException {
51+
/**
52+
* This needs to default to null because this transport class is used for both a server transport
53+
* and a client connection and we have different defaults for both.
54+
* If we default it to a value it might override the transport server setting
55+
* that was configured inside TcpTransportServer (which sets a default to false for server side)
56+
*
57+
* The idea here is that if this is a server transport then verifyHostName will be set by the setter
58+
* and not be null as TcpTransportServer will set a default value of false (or a user will set it
59+
* using transport.verifyHostName) but if this is a client connection the value will be null by default
60+
* and will stay null if the user uses socket.verifyHostName to set the value or doesn't use the setter
61+
* If it is null then we can check socketOptions for the value and if not set there then we can
62+
* just set a default of true as this will be a client
63+
*
64+
* Unfortunately we have to do this to stay consistent because every other SSL option on the client
65+
* side can be configured using socket. but this particular option isn't actually part of the socket
66+
* so it makes it tricky from a user standpoint. For consistency sake I think it makes sense to allow
67+
* using the socket. prefix that has been established so users do not get confused (as well as
68+
* allow using no prefix which just calls the setter directly)
69+
*
70+
* Because of this there are actually two ways a client can configure this value, the client can either use
71+
* socket.verifyHostName=<value> as mentioned or just simply use verifyHostName=<value> without using the socket.
72+
* prefix and that will also work as the value will be set using the setter on the transport
73+
*
74+
* example server transport config:
75+
* ssl://localhost:61616?transport.verifyHostName=true
76+
*
77+
* example from client:
78+
* ssl://localhost:61616?verifyHostName=true
79+
* OR
80+
* ssl://localhost:61616?socket.verifyHostName=true
81+
*
82+
*/
83+
if (verifyHostName == null) {
84+
//Check to see if the user included the value as part of socket options and if so then use that value
85+
if (socketOptions != null && socketOptions.containsKey("verifyHostName")) {
86+
verifyHostName = Boolean.parseBoolean(socketOptions.get("verifyHostName").toString());
87+
socketOptions.remove("verifyHostName");
88+
} else {
89+
//If null and not set then this is a client so default to true
90+
verifyHostName = true;
91+
}
92+
}
93+
94+
// Lets try to configure the SSL SNI field. Handy in case your using
95+
// a single proxy to route to different messaging apps.
96+
final SSLParameters sslParams = new SSLParameters();
97+
if (remoteLocation != null) {
98+
sslParams.setServerNames(Collections.singletonList(new SNIHostName(remoteLocation.getHost())));
99+
}
100+
101+
if (verifyHostName) {
102+
sslParams.setEndpointIdentificationAlgorithm("HTTPS");
103+
}
104+
105+
if (remoteLocation != null || verifyHostName) {
106+
// AMQ-8445 only set SSLParameters if it has been populated before
107+
((SSLSocket) this.socket).setSSLParameters(sslParams);
108+
}
109+
110+
super.initialiseSocket(sock);
111+
}
112+
113+
/**
114+
* Initialize from a ServerSocket. No access to needClientAuth is given
115+
* since it is already set within the provided socket.
116+
*
117+
* @param wireFormat The WireFormat to be used.
118+
* @param socket The Socket to be used. Forcing SSL.
119+
* @throws IOException If TcpTransport throws.
120+
*/
121+
public SslTransport(WireFormat wireFormat, SSLSocket socket) throws IOException {
122+
super(wireFormat, socket);
123+
}
124+
125+
public SslTransport(WireFormat format, SSLSocket socket,
126+
InitBuffer initBuffer) throws IOException {
127+
super(format, socket, initBuffer);
128+
}
129+
130+
/**
131+
* Overriding in order to add the client's certificates to ConnectionInfo
132+
* Commmands.
133+
*
134+
* @param command The Command coming in.
135+
*/
136+
@Override
137+
public void doConsume(Object command) {
138+
// The instanceof can be avoided, but that would require modifying the
139+
// Command clas tree and that would require too much effort right
140+
// now.
141+
if (command instanceof ConnectionInfo) {
142+
ConnectionInfo connectionInfo = (ConnectionInfo)command;
143+
connectionInfo.setTransportContext(getPeerCertificates());
144+
}
145+
super.doConsume(command);
146+
}
147+
148+
public void setVerifyHostName(Boolean verifyHostName) {
149+
this.verifyHostName = verifyHostName;
150+
}
151+
152+
/**
153+
* @return peer certificate chain associated with the ssl socket
154+
*/
155+
@Override
156+
public X509Certificate[] getPeerCertificates() {
157+
158+
SSLSocket sslSocket = (SSLSocket)this.socket;
159+
160+
SSLSession sslSession = sslSocket.getSession();
161+
162+
X509Certificate[] clientCertChain;
163+
try {
164+
clientCertChain = (X509Certificate[])sslSession.getPeerCertificates();
165+
} catch (SSLPeerUnverifiedException e) {
166+
clientCertChain = null;
167+
}
168+
169+
return clientCertChain;
170+
}
171+
172+
/**
173+
* @return pretty print of 'this'
174+
*/
175+
@Override
176+
public String toString() {
177+
return "ssl://" + socket.getInetAddress() + ":" + socket.getPort();
178+
}
179+
}

‎src/main/java/org/apache/activemq/transport/tcp/TcpTransport.java

+767
Large diffs are not rendered by default.

‎src/main/java/org/mule/extensions/jms/internal/connection/provider/activemq/ActiveMQConnectionProvider.java

+9
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.mule.extensions.jms.internal.ExcludeFromGeneratedCoverage;
2323
import org.mule.extensions.jms.internal.connection.exception.ActiveMQException;
2424
import org.mule.extensions.jms.internal.connection.provider.BaseConnectionProvider;
25+
import org.mule.extensions.jms.internal.connection.provider.loader.FirewallLoader;
2526
import org.mule.jms.commons.internal.connection.JmsConnection;
2627
import org.mule.jms.commons.internal.connection.JmsTransactionalConnection;
2728
import org.mule.runtime.api.connection.ConnectionException;
@@ -46,6 +47,8 @@
4647
import java.lang.reflect.InvocationTargetException;
4748
import java.lang.reflect.Method;
4849
import java.lang.reflect.Proxy;
50+
import java.net.URL;
51+
import java.net.URLClassLoader;
4952
import java.security.KeyManagementException;
5053
import java.security.NoSuchAlgorithmException;
5154
import java.util.function.Supplier;
@@ -268,6 +271,12 @@ protected void configureSSLContext() {
268271
try {
269272
if (tlsConfiguration != null) {
270273
SSLContext sslContext = tlsConfiguration.createSslContext();
274+
ClassLoader currentClassLoader = Thread.currentThread().getContextClassLoader();
275+
// force loading of class from connector instead of the one from the library, because it uses reflection
276+
ClassLoader firewallLoader = new FirewallLoader(currentClassLoader);
277+
ClassLoader loader = new URLClassLoader(new URL[]{this.getClass().getProtectionDomain().getCodeSource().getLocation()}, firewallLoader);
278+
Thread.currentThread().setContextClassLoader(loader);
279+
271280
SslContext activeMQSslContext = new SslContext();
272281
activeMQSslContext.setSSLContext(sslContext);
273282
SslContext.setCurrentSslContext(activeMQSslContext);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.mule.extensions.jms.internal.connection.provider.loader;
2+
3+
public class FirewallLoader extends ClassLoader {
4+
public FirewallLoader(ClassLoader parent) {
5+
super(parent);
6+
}
7+
public Class loadClass(String name, boolean resolve) throws ClassNotFoundException {
8+
if (name.equals("org.apache.activemq.transport.tcp.SslTransport") || name.equals("org.apache.activemq.transport.tcp.TcpTransport")) {
9+
throw new ClassNotFoundException();
10+
}
11+
return super.loadClass(name, resolve);
12+
}
13+
}

‎src/test/docker/tls/Dockerfile

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
FROM openjdk:8-jre
22

3+
RUN wget https://downloads.bouncycastle.org/fips-java/bc-fips-1.0.2.4.jar -P $JAVA_HOME/lib/ext
4+
RUN cp -a $JAVA_HOME/lib/security/java.security $JAVA_HOME/lib/security/java.security.orig
5+
COPY java.security.fips $JAVA_HOME/lib/security/java.security
6+
7+
RUN cp -a $JAVA_HOME/lib/security/cacerts $JAVA_HOME/lib/security/cacerts.orig
8+
RUN rm $JAVA_HOME/lib/security/cacerts
9+
RUN keytool -importkeystore -srckeystore $JAVA_HOME/lib/security/cacerts.orig -srcstoretype JKS -destkeystore $JAVA_HOME/lib/security/cacerts -deststoretype BCFKS -deststorepass changeit -srcstorepass changeit
10+
311
ENV ACTIVEMQ_VERSION 5.15.9
412
ENV ACTIVEMQ apache-activemq-$ACTIVEMQ_VERSION
513
ENV FILENAME $ACTIVEMQ-bin.tar.gz
614
ENV ACTIVEMQ_TCP=61616 ACTIVEMQ_AMQP=5672 ACTIVEMQ_STOMP=61613 ACTIVEMQ_MQTT=1883 ACTIVEMQ_WS=61614 ACTIVEMQ_UI=8161
715
ENV SHA512_VAL=35cae4258e38e47f9f81e785f547afc457fc331d2177bfc2391277ce24123be1196f10c670b61e30b43b7ab0db0628f3ff33f08660f235b7796d59ba922d444f
816
ENV ACTIVEMQ_HOME /opt/activemq
9-
ENV ACTIVEMQ_SSL_OPTS=-Djavax.net.ssl.keyStore=/opt/activemq/certs/ActiveMq/broker.ks -Djavax.net.ssl.keyStorePassword=racing
17+
ENV ACTIVEMQ_SSL_OPTS=-Djavax.net.ssl.keyStore=/opt/activemq/certs/ActiveMq/broker.ks -Djavax.net.ssl.keyStorePassword=password
1018

1119
COPY $FILENAME $FILENAME
1220

‎src/test/docker/tls/activemq.xml

+4-2
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,10 @@
123123
<bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
124124
</shutdownHooks>
125125
<sslContext>
126-
<sslContext keyStore="file:${activemq.base}/certs/ActiveMq/broker.ks" keyStorePassword="racing"
127-
trustStore="file:${activemq.base}/certs/ActiveMq/broker.ts" trustStorePassword="racing"/>
126+
<sslContext keyStore="file:${activemq.base}/certs/ActiveMq/broker.ks" keyStorePassword="password" keyStoreType="BCFKS"
127+
trustStore="file:${activemq.base}/certs/ActiveMq/broker.ts" trustStorePassword="password"
128+
trustStoreType="BCFKS" secureRandomAlgorithm="default"
129+
/>
128130
</sslContext>
129131
</broker>
130132

1.71 KB
Binary file not shown.
2.37 KB
Binary file not shown.

‎src/test/docker/tls/java.security.fips

+955
Large diffs are not rendered by default.

‎src/test/munit/activemq-over-ssl-test-case.xml

+17-11
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@
2020
<munit:parameterization name="invalid-broker-url">
2121
<munit:parameters>
2222
<!-- a valid ip which is not the host defined in the CN for the TSL connection certificate -->
23-
<munit:parameter propertyName="brokerUrl" value="ssl://0.0.0.0:${activemq.port}"/>
23+
<munit:parameter propertyName="brokerUrl" value="ssl://0.0.0.0:${activemq.port}?socket.verifyHostName=false"/>
2424
</munit:parameters>
2525
</munit:parameterization>
2626
<munit:parameterization name="valid-broker-url">
2727
<munit:parameters>
2828
<!-- a host which is not the one defined in the CN for the TSL connection certificate -->
29-
<munit:parameter propertyName="brokerUrl" value="ssl://localhost:${activemq.port}"/>
29+
<munit:parameter propertyName="brokerUrl" value="ssl://localhost:${activemq.port}?socket.verifyHostName=false"/>
3030
</munit:parameters>
3131
</munit:parameterization>
3232
<munit:parameterization name="valid-failover-broker-url">
3333
<munit:parameters>
3434
<!-- a host which is not the one defined in the CN for the TSL connection certificate, using a failover brokerURL -->
35-
<munit:parameter propertyName="brokerUrl" value="failover:(ssl://localhost:${activemq.port},ssl://localhost:${activemq.port})"/>
35+
<munit:parameter propertyName="brokerUrl" value="failover:(ssl://localhost:${activemq.port}?socket.verifyHostName=false&amp;maxReconnectAttempts=10,ssl://localhost:${activemq.port}?socket.verifyHostName=false)"/>
3636
</munit:parameters>
3737
</munit:parameterization>
3838
</munit:parameterizations>
@@ -41,15 +41,15 @@
4141
<munit:dynamic-port propertyName="activemq.port"/>
4242

4343
<munit:before-test name="before-activemq-over-ssl-test-case" description="after test">
44-
<set-variable variableName="storetype" value="${cert2.type}"/>
45-
<set-variable variableName="storePath" value="tls/client.ks.${cert2.ext}"/>
44+
<set-variable variableName="storetype" value="bcfks"/>
45+
<set-variable variableName="storePath" value="tls/broker.bcfks"/>
4646
</munit:before-test>
4747

4848
<jms:config name="config-with-ssl">
4949
<jms:active-mq-connection>
5050
<tls:context >
51-
<tls:trust-store insecure="true" />
52-
<tls:key-store type="#[vars.storetype]" path="#[vars.storePath]" keyPassword="password" password="password" algorithm="PKIX"/>
51+
<tls:trust-store type="${vars.storetype}" path="tls/broker.bcfks" password="password" algorithm="PKIX"/>
52+
<tls:key-store type="${vars.storetype}" path="tls/broker.bcfks" keyPassword="password" password="password" algorithm="PKIX"/>
5353
</tls:context>
5454
<jms:factory-configuration brokerUrl="${brokerUrl}" />
5555
</jms:active-mq-connection>
@@ -92,12 +92,18 @@
9292
</munit:execution>
9393
</munit:test>
9494

95+
<munit:test name="test-connectivity"
96+
ignore="#[p('mule.security.model')!='fips140-2']">
97+
<munit:execution>
98+
<mtf:test-connectivity config-ref="config-with-ssl" />
99+
</munit:execution>
100+
</munit:test>
101+
95102
<munit:test name="wrong-keystore-type-FIPS"
96-
ignore="#[p('mule.security.model')==null or p('mule.security.model')!='fips140-2']"
97-
expectedException="java.security.KeyStoreException">
103+
expectedException="java.security.KeyStoreException" ignore="true">
98104
<munit:execution>
99-
<set-variable variableName="storetype" value="jks"/>
100-
<set-variable variableName="storePath" value="tls/client.ks"/>
105+
<set-variable variableName="storetype" value="bcfks"/>
106+
<set-variable variableName="storePath" value="tls/broker.ks"/>
101107
<mtf:test-connectivity config-ref="config-with-ssl" />
102108
</munit:execution>
103109
</munit:test>

‎src/test/munit/reconnection/activemq-ssl-listener-reconnection-test-case.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,10 @@
2222
<reconnect-forever />
2323
</reconnection>
2424
<tls:context >
25-
<tls:trust-store path="tls/client-truststore.${cert2.ext}" password="racing" type="${cert2.type}" />
25+
<tls:trust-store type="bcfks" path="tls/broker.bcfks" password="password" algorithm="PKIX"/>
26+
<tls:key-store type="bcfks" path="tls/broker.bcfks" keyPassword="password" password="password" algorithm="PKIX"/>
2627
</tls:context>
27-
<jms:factory-configuration brokerUrl="ssl://localhost:${activemq.ssl.listener.port}" />
28+
<jms:factory-configuration brokerUrl="ssl://localhost:${activemq.ssl.listener.port}?socket.verifyHostName=false" />
2829
</jms:active-mq-connection>
2930
</jms:config>
3031

‎src/test/munit/xa/activemq-ssl-xa-test-case.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@
2121
<jms:config name="JMS_SSL_XA_Config">
2222
<jms:active-mq-connection username="admin" password="admin" clientId="client1" >
2323
<tls:context >
24-
<tls:trust-store path="tls/client-truststore-new.${cert1.ext}" password="racing" type="${cert1.type}" />
24+
<tls:trust-store type="bcfks" path="tls/broker.bcfks" password="password" algorithm="PKIX"/>
25+
<tls:key-store type="bcfks" path="tls/broker.bcfks" keyPassword="password" password="password" algorithm="PKIX"/>
2526
</tls:context>
2627
<jms:caching-strategy >
2728
<jms:no-caching />
2829
</jms:caching-strategy>
29-
<jms:factory-configuration brokerUrl="ssl://localhost:${activemq.ssl.listener.port}" enable-xa="true"/>
30+
<jms:factory-configuration brokerUrl="ssl://localhost:${activemq.ssl.listener.port}?socket.verifyHostName=false" enable-xa="true"/>
3031
</jms:active-mq-connection>
3132
</jms:config>
3233

‎src/test/resources/activemq-fips.xml

+10-2
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,15 @@
5151

5252
<sslContext>
5353
<sslContext
54-
keyStore="tls/broker.ks.bcfks" keyStorePassword="password" trustStore="tls/client.ks.bcfks" trustStorePassword="password"/>
54+
keyStore="tls/broker.bcfks"
55+
keyStorePassword="password"
56+
keyStoreType="BCFKS"
57+
58+
trustStore="tls/client.bcfks"
59+
trustStorePassword="password"
60+
trustStoreType="BCFKS"
61+
62+
secureRandomAlgorithm="default" />
5563
</sslContext>
5664

5765

@@ -104,7 +112,7 @@
104112
http://activemq.apache.org/configuring-transports.html
105113
-->
106114
<transportConnectors>
107-
<transportConnector name="ssl" uri="ssl://0.0.0.0:${activemq.port}?transport.needClientAuth=true&amp;transport.enabledProtocols=TLSv1.2" />
115+
<transportConnector name="ssl" uri="ssl://0.0.0.0:${activemq.port}?socket.verifyHostName=false&amp;transport.needClientAuth=true&amp;transport.enabledProtocols=TLSv1.2" />
108116
</transportConnectors>
109117

110118
<!-- destroy the spring context on shutdown to stop jetty -->

‎src/test/resources/activemq.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
http://activemq.apache.org/configuring-transports.html
105105
-->
106106
<transportConnectors>
107-
<transportConnector name="ssl" uri="ssl://0.0.0.0:${activemq.port}?transport.needClientAuth=true&amp;transport.enabledProtocols=TLSv1.2" />
107+
<transportConnector name="ssl" uri="ssl://0.0.0.0:${activemq.port}?socket.verifyHostName=false&amp;transport.needClientAuth=true&amp;transport.enabledProtocols=TLSv1.2" />
108108
</transportConnectors>
109109

110110
<!-- destroy the spring context on shutdown to stop jetty -->

‎src/test/resources/tls/broker.bcfks

3.65 KB
Binary file not shown.

‎src/test/resources/tls/client.bcfks

3.66 KB
Binary file not shown.

0 commit comments

Comments
 (0)
Please sign in to comment.