You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2020/12/08 21:30:21 UTC
[camel-quarkus] branch master updated: Polish how we pass
-Djavax.net.ssl.trustStore to the Solr test #2029
This is an automated email from the ASF dual-hosted git repository.
ppalaga pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push:
new 2a3c0b7 Polish how we pass -Djavax.net.ssl.trustStore to the Solr test #2029
2a3c0b7 is described below
commit 2a3c0b79f6c17108b8004c9c7c7df3fdf15e3af9
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Fri Dec 4 21:44:54 2020 +0100
Polish how we pass -Djavax.net.ssl.trustStore to the Solr test #2029
---
.../quarkus/test/ExtendDefaultTrustStore.java | 87 +++++++++++++++++++
.../camel/quarkus/test/TrustStoreResource.java | 10 ++-
integration-tests/solr/pom.xml | 96 +++++++++++++--------
.../solr/src/main/resources/application.properties | 21 +++++
.../camel/quarkus/component/solr/it/SolrTest.java | 2 +-
.../solr/src/test/resources/ssl/README.adoc | 6 ++
.../solr/src/test/resources/ssl/solr-ssl.der | 22 +++++
.../src/test/resources/ssl/solr-ssl.keystore.p12 | Bin 2659 -> 0 bytes
.../solr/src/test/resources/ssl/solr-ssl.pem | 63 --------------
pom.xml | 1 +
tooling/scripts/test-categories.yaml | 2 +-
11 files changed, 205 insertions(+), 105 deletions(-)
diff --git a/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/ExtendDefaultTrustStore.java b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/ExtendDefaultTrustStore.java
new file mode 100644
index 0000000..2167006
--- /dev/null
+++ b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/ExtendDefaultTrustStore.java
@@ -0,0 +1,87 @@
+/*
+ * 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.camel.quarkus.test;
+
+import java.io.BufferedInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.CertificateFactory;
+import java.security.cert.X509Certificate;
+
+/**
+ * A utility to take the default JVM's trust store, add some custom certificates to it, store it to a
+ * temporary location and set {@code javax.net.ssl.trustStore} to the temporary path.
+ */
+public class ExtendDefaultTrustStore {
+
+ public static Path extendTrustStoreIfNeeded(Path extendedTrustStorePath, String[] certs)
+ throws KeyStoreException, IOException, NoSuchAlgorithmException, CertificateException {
+ final Path sslDir = extendedTrustStorePath.getParent();
+
+ if (Files.exists(extendedTrustStorePath)) {
+ System.out.println("Nothing to do, the trust store exists already: " + extendedTrustStorePath);
+ } else {
+
+ final Path defaultTrustStore = TrustStoreResource.getDefaultTrustStorePath();
+
+ final KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
+ try (InputStream in = Files.newInputStream(defaultTrustStore)) {
+ keystore.load(in, null);
+ }
+ System.out.println("Loaded " + defaultTrustStore);
+
+ final CertificateFactory cf = CertificateFactory.getInstance("X.509");
+ for (String cert : certs) {
+ System.out.println("Adding " + cert);
+ final int colonPos = cert.indexOf(':');
+ final String alias = colonPos >= 0 ? cert.substring(0, colonPos) : "localhost";
+ final String certPath = colonPos >= 0 ? cert.substring(colonPos + 1) : cert;
+ try (InputStream in = ExtendDefaultTrustStore.class.getClassLoader().getResourceAsStream(certPath)) {
+ final X509Certificate ca = (X509Certificate) cf.generateCertificate(new BufferedInputStream(in));
+ keystore.setCertificateEntry(alias, ca);
+ }
+ }
+
+ Files.createDirectories(sslDir);
+
+ try (OutputStream out = Files.newOutputStream(extendedTrustStorePath)) {
+ keystore.store(out, new char[0]);
+ }
+ System.out.println("Stored the extended trust store to " + extendedTrustStorePath);
+ }
+ return extendedTrustStorePath;
+ }
+
+ public static void main(String[] args) {
+ try {
+ final Path baseDir = Paths.get(args[0]);
+ String[] certs = new String[args.length - 1];
+ System.arraycopy(args, 1, certs, 0, args.length - 1);
+ extendTrustStoreIfNeeded(baseDir, certs);
+ } catch (Exception e) {
+ new Exception("Could not extend the default trust store with args " + String.join(", ", args), e).printStackTrace();
+ }
+ }
+}
diff --git a/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
index e6bdb18..2fe0a4d 100644
--- a/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
+++ b/integration-tests-support/test-support/src/main/java/org/apache/camel/quarkus/test/TrustStoreResource.java
@@ -35,10 +35,13 @@ public class TrustStoreResource implements QuarkusTestResourceLifecycleManager {
@Override
public Map<String, String> start() {
- final String graalVmHome = System.getenv("GRAALVM_HOME");
- final String javaHome = System.getProperty("java.home", System.getenv("JAVA_HOME"));
+ return Collections.singletonMap("javax.net.ssl.trustStore", getDefaultTrustStorePath().toString());
+ }
+ public static Path getDefaultTrustStorePath() {
Path trustStorePath;
+ final String graalVmHome = System.getenv("GRAALVM_HOME");
+ final String javaHome = System.getProperty("java.home", System.getenv("JAVA_HOME"));
if (graalVmHome != null && !graalVmHome.isEmpty()
&& Files.exists(trustStorePath = Paths.get(graalVmHome).resolve(CACERTS_REL_PATH))) {
@@ -56,8 +59,7 @@ public class TrustStoreResource implements QuarkusTestResourceLifecycleManager {
+ ". You may need to set GRAALVM_HOME or JAVA_HOME properly. Found $GRAALVM_HOME = " + graalVmHome
+ " and $JAVA_HOME = " + graalVmHome);
}
-
- return Collections.singletonMap("javax.net.ssl.trustStore", trustStorePath.toString());
+ return trustStorePath;
}
@Override
diff --git a/integration-tests/solr/pom.xml b/integration-tests/solr/pom.xml
index ce71b8a..39be0c0 100644
--- a/integration-tests/solr/pom.xml
+++ b/integration-tests/solr/pom.xml
@@ -17,7 +17,8 @@
limitations under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.camel.quarkus</groupId>
@@ -30,8 +31,7 @@
<description>Integration tests for Camel Quarkus Solr extension</description>
<properties>
- <solr.trust-store>${project.basedir}/src/test/resources/ssl/solr-ssl.keystore.jks</solr.trust-store>
- <solr.trust-store-password>secret</solr.trust-store-password>
+ <solr.trust-store>${project.basedir}/target/ssl/trust-store.jks</solr.trust-store>
</properties>
<dependencyManagement>
@@ -43,16 +43,6 @@
<type>pom</type>
<scope>import</scope>
</dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-jackson-deployment</artifactId>
- <version>${quarkus.version}</version>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-resteasy-jackson-deployment</artifactId>
- <version>${quarkus.version}</version>
- </dependency>
</dependencies>
</dependencyManagement>
@@ -91,15 +81,6 @@
<artifactId>solr</artifactId>
<scope>test</scope>
</dependency>
- <!-- this dependency is added so that all artifacts quarkus-resteasy-jackson-deployment and quarkus-jackson-deployment are downloaded before tests, otherwise it will fail after setting the javax.net.ssl.trustStore and javax.net.ssl.trustStorePassword properties -->
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-jackson-deployment</artifactId>
- </dependency>
- <dependency>
- <groupId>io.quarkus</groupId>
- <artifactId>quarkus-resteasy-jackson-deployment</artifactId>
- </dependency>
<!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory -->
<dependency>
@@ -118,21 +99,66 @@
</dependencies>
<build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <systemPropertyVariables>
- <javax.net.ssl.trustStore>${solr.trust-store}</javax.net.ssl.trustStore>
- <javax.net.ssl.trustStorePassword>${solr.trust-store-password}</javax.net.ssl.trustStorePassword>
- </systemPropertyVariables>
- </configuration>
- </plugin>
- </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ <filtering>true</filtering>
+ </resource>
+ </resources>
</build>
+
<profiles>
<profile>
+ <id>full</id>
+ <activation>
+ <property>
+ <name>!quickly</name>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>extend-default-trust-store-extension</id>
+ <phase>test-compile</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <additionalClasspathElements>${basedir}/target/test-classes</additionalClasspathElements>
+ <mainClass>org.apache.camel.quarkus.test.ExtendDefaultTrustStore</mainClass>
+ <arguments>
+ <argument>${solr.trust-store}</argument>
+ <argument>ssl/solr-ssl.der</argument>
+ </arguments>
+ <includePluginDependencies>true</includePluginDependencies>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.camel.quarkus</groupId>
+ <artifactId>camel-quarkus-integration-test-support</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <javax.net.ssl.trustStore>${solr.trust-store}</javax.net.ssl.trustStore>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
<id>native</id>
<activation>
<property>
@@ -141,8 +167,6 @@
</activation>
<properties>
<quarkus.package.type>native</quarkus.package.type>
- <quarkus.native.additional-build-args>-H:IncludeResources=.*ssl/.*,-J-Djavax.net.ssl.trustStore=${solr.trust-store},
- -J-Djavax.net.ssl.trustStorePassword=${solr.trust-store-password}</quarkus.native.additional-build-args>
</properties>
<build>
<plugins>
diff --git a/integration-tests/solr/src/main/resources/application.properties b/integration-tests/solr/src/main/resources/application.properties
new file mode 100644
index 0000000..8969816
--- /dev/null
+++ b/integration-tests/solr/src/main/resources/application.properties
@@ -0,0 +1,21 @@
+## ---------------------------------------------------------------------------
+## 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.
+## ---------------------------------------------------------------------------
+quarkus.native.resources.includes = ssl/**
+
+# target/ssl/trust-store.jks can be created by executing ExtendDefaultTrustStore.main(). That must happen
+# before running the build mojo of Quarkus Maven plugin
+quarkus.native.additional-build-args = -J-Djavax.net.ssl.trustStore=${project.basedir}/target/ssl/trust-store.jks
\ No newline at end of file
diff --git a/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java b/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
index e267eea..5e29775 100644
--- a/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
+++ b/integration-tests/solr/src/test/java/org/apache/camel/quarkus/component/solr/it/SolrTest.java
@@ -39,7 +39,7 @@ import static org.hamcrest.Matchers.equalTo;
public class SolrTest {
/**
* Quarkus resources to test
- *
+ *
* @return
*/
private static Stream<String> resources() {
diff --git a/integration-tests/solr/src/test/resources/ssl/README.adoc b/integration-tests/solr/src/test/resources/ssl/README.adoc
new file mode 100644
index 0000000..a61d349
--- /dev/null
+++ b/integration-tests/solr/src/test/resources/ssl/README.adoc
@@ -0,0 +1,6 @@
+== Purpose and content of the individual files in this directory
+
+* `solr-ssl.keystore.jks` the keystore containing the server certificate and private key to use when starting
+ Solr container with SSL enbled. The password for both the store and the private key is `secret`.
+* `solr-ssl.der` the same server certificate as in `solr-ssl.keystore.jks`, stored separately so that it is
+ easier to add it to the JVM's trust store via `ExtendDefaultTrustStore.main()`
diff --git a/integration-tests/solr/src/test/resources/ssl/solr-ssl.der b/integration-tests/solr/src/test/resources/ssl/solr-ssl.der
new file mode 100644
index 0000000..f04dffe
--- /dev/null
+++ b/integration-tests/solr/src/test/resources/ssl/solr-ssl.der
@@ -0,0 +1,22 @@
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIEM3jJlzANBgkqhkiG9w0BAQsFADB+MRAwDgYDVQQGEwdD
+b3VudHJ5MQ4wDAYDVQQIEwVTdGF0ZTERMA8GA1UEBxMITG9jYXRpb24xFTATBgNV
+BAoTDE9yZ2FuaXphdGlvbjEcMBoGA1UECxMTT3JnYW5pemF0aW9uYWwgVW5pdDES
+MBAGA1UEAxMJbG9jYWxob3N0MB4XDTIwMTExODEzNTcxMFoXDTQ4MDQwNDEzNTcx
+MFowfjEQMA4GA1UEBhMHQ291bnRyeTEOMAwGA1UECBMFU3RhdGUxETAPBgNVBAcT
+CExvY2F0aW9uMRUwEwYDVQQKEwxPcmdhbml6YXRpb24xHDAaBgNVBAsTE09yZ2Fu
+aXphdGlvbmFsIFVuaXQxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBAOwmcDqlyOwC8vv3j7NrC1Y24sBmgAyfuLy0Y4KF
+yakZIVJQSWLm2NyjmK3a3ZN2gjsv8dcLdg+8KJvvwUDhMxMeS+xXS4UjHX27crL2
+AouKI/ueAC+thhfvdPIgR/opnrLXueK6kRgLiHOq4Ao18QJ0VCYhpfQx73ZXAMPN
+g4XdktmdZURCx96noYB6oG5SQ/SL2LT+g5GDPbJHGDIvMSe6j1no5Sqn11Q46Azf
+DZfhP6+OzT7zWOGCvi/Tn7qPQ6hX27esin93zlKA9fY/hIbq2o5u6ARS0SV3xNhd
+8MlHC7s4ML0SD7ecZMbK6Xb4ECFvVkiNa0SScEpJ21eEL5sCAwEAAaM9MDswHQYD
+VR0OBBYEFBNQ3LdaHZHA44JakfiUWV9pm7RbMBoGA1UdEQQTMBGCCWxvY2FsaG9z
+dIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAHTGU1JEjwDOongGlRC+e+zJVLymJ
+6x+npvmrIwjpGL/FoSfEtk8UH4TU02hzXPrq+mKlYIXVgvh2Ip7LSPSBNH1dPksi
+qhKXxNsnqdED9svQ8wjoIC/4PNJ1+cRUwOeC5rmEZlJaBmL7qgAmf/UsgPs5/zM9
+a+OEOyCoiA+I8hQYBhrbeDoJGhLsIxePMQVTPjoKHk10j+o7h7MpOmeCe4Sy3pT4
+yN+Z3esa9wlJoRiJVqlYoYq2ZI4NedTWksVu+B2sdNb8jWMT4V6gCF8Se/rNKifr
+kR0KR/InP19Ioz6t7IMYFyVDaoUsRK8DmUlTwXiWV+5sCiJZYYUOLGIbTg==
+-----END CERTIFICATE-----
diff --git a/integration-tests/solr/src/test/resources/ssl/solr-ssl.keystore.p12 b/integration-tests/solr/src/test/resources/ssl/solr-ssl.keystore.p12
deleted file mode 100644
index f83bff9..0000000
Binary files a/integration-tests/solr/src/test/resources/ssl/solr-ssl.keystore.p12 and /dev/null differ
diff --git a/integration-tests/solr/src/test/resources/ssl/solr-ssl.pem b/integration-tests/solr/src/test/resources/ssl/solr-ssl.pem
deleted file mode 100644
index 404b5a3..0000000
--- a/integration-tests/solr/src/test/resources/ssl/solr-ssl.pem
+++ /dev/null
@@ -1,63 +0,0 @@
-Bag Attributes
- friendlyName: solr-ssl
- localKeyID: 54 69 6D 65 20 31 36 30 35 37 30 37 38 34 34 38 32 36
-Key Attributes: <No Attributes>
------BEGIN ENCRYPTED PRIVATE KEY-----
-MIIFHDBOBgkqhkiG9w0BBQ0wQTApBgkqhkiG9w0BBQwwHAQI8hUTfU2CykECAggA
-MAwGCCqGSIb3DQIJBQAwFAYIKoZIhvcNAwcECIheXQFdGg7wBIIEyNjpbmVwwtyk
-+R5nKN/Ln1VvtGV70j6gYEw8z2Ovk1Dt1a2Ppxmd1rPJtaIJ8GiOaYJWSA1ASDXg
-mYWXqP4jaqGEzCs3yGpLL/EjmfOVQTN2ffoPQJ10NRFqm7RH/D1YLu3J4SfPOaEz
-vBF8h6OrgDWSYf+QstDU3vdeYSqLjZ7Q/2mnSoiwz33VV21+Qo50+b2ewAb/p8LE
-1U1M1rs/nZI5iJEjIJ26WawY6Pdi6XKWV4tbG/X0P4sTZIfVZv7tePd+qSj9vKOb
-qp34NuC1pWwFzk0PIcLQp0Cs+ikb0jDnfuDwv/1u3XPpzRql2QkH5u6SaXPnLXRK
-2tPNA7oEw6YGIfeGea02jw6ZKB0m1ieKJaXQx0OXiEk4iZV10+aA/fx6ToW3aVri
-GBN1FvoZ/ZLNKq6/XvDS3GaKo37GmunNjk8bQsu2B3WhD1TcLwtIUo0wIhHzIFnh
-3Y1qBDX5m2sidyoDoDYC14Ric9N5cmE+NDehy4nU92hsMfp5gtm9BnK4+7PqMWFz
-gMuKOD6SbZvU6bR17VQNM4RkajtJHMlhpDxE+CDWVrz872GYJT7FyM8mfMbLPwCc
-TSITWIIJ2auCBtd6um1NBpzh4JEokjr/WfzWLwiXEA0JcCwMVOI5QJN9JlRGIqgr
-NbhY+12ll3lkAKI8TJbdtNacK9LurUJDvDhx4ZC0Zz2GPB8n2isuQyu+iZgzStaU
-ssD8J7EDuHO22Wos1IGv8Y2EtVadHyfMhIRvrm+C7a/sOu2bVutkUjvvemg+ztnr
-5CIffgE4zK2iSLOyLxx3aE4kYPC0oRqYwhbTNlbWsVJJUGw9x7qAgmlnIMrh3CcE
-9yFtnrhD2K4geceHbd5jLD5HlPIFuJZwtwDhjIei1iJ3LUCzlya/nv0EDEZyi/6f
-J5vtUPpPMai07EWI0WI42Ax2XosSCgKB4+0IL7Pxs4pDBD6AvwsRSd9LhdzrXRhz
-hwuvHwlCan0c6tF0WNq8T+GSz8vUnZIf1pX9NzskNv31mbVmovfTjKmSLS1xX81x
-nhlCnbKTKaw7mvLVLJ2c3UUCu8ZYa9qUvEzxmWTjIIN8dWbzu1MXEn4s6WUNZaEr
-+7lQoE/7DJ7oS0D6piOCbV6pTrbIS/Tfyu7LenWIlXOI8GD2YN21K7hIR/5XbGyU
-RRuEJbkunUeJvKS+Mvkk43VF6xGga/ChbQ32t2GX6lj8bOfdpXkKdGbPm8kB+LtY
-dwc+UfJqIzHP5OtcqzmL9HvcjpEGJF1WgBgfwowD3kYsCZq1N6MCTCm2WEDz7Q5Y
-ylsi/sFMyoiNUtXIj+T2w9HfM82NOAzAHGGZVAhVPtHtfU/m5Yo8rFMkdmbwxeJZ
-NwVoWOyJzefCMNXMosHxOCTef7FB24UGa+vi+e7WC6mLVny1FjTxCpxkb8Bw3+e1
-OHetZZisp0PK8gQGA4XiyMaAOKCpKGNoIYPwaNzB0S6qB9OM4ohyiBiOYglnQtv8
-JrLWJVjV2mBZRREfjc+Ik9iKGFbF95xAKvW66T3zBpJQjkjPQ6exsQKv3tGaL9mX
-VW5ySdJ9IXAm5tiqfakE2BYvozsyGRD5m+Z1v71zA9ovY1utlIf0iBuSnQvgxcTp
-KJyiBtXkAPrRLz1tD3wrXA==
------END ENCRYPTED PRIVATE KEY-----
-Bag Attributes
- friendlyName: solr-ssl
- localKeyID: 54 69 6D 65 20 31 36 30 35 37 30 37 38 34 34 38 32 36
-subject=C = Country, ST = State, L = Location, O = Organization, OU = Organizational Unit, CN = localhost
-
-issuer=C = Country, ST = State, L = Location, O = Organization, OU = Organizational Unit, CN = localhost
-
------BEGIN CERTIFICATE-----
-MIIDtzCCAp+gAwIBAgIEM3jJlzANBgkqhkiG9w0BAQsFADB+MRAwDgYDVQQGEwdD
-b3VudHJ5MQ4wDAYDVQQIEwVTdGF0ZTERMA8GA1UEBxMITG9jYXRpb24xFTATBgNV
-BAoTDE9yZ2FuaXphdGlvbjEcMBoGA1UECxMTT3JnYW5pemF0aW9uYWwgVW5pdDES
-MBAGA1UEAxMJbG9jYWxob3N0MB4XDTIwMTExODEzNTcxMFoXDTQ4MDQwNDEzNTcx
-MFowfjEQMA4GA1UEBhMHQ291bnRyeTEOMAwGA1UECBMFU3RhdGUxETAPBgNVBAcT
-CExvY2F0aW9uMRUwEwYDVQQKEwxPcmdhbml6YXRpb24xHDAaBgNVBAsTE09yZ2Fu
-aXphdGlvbmFsIFVuaXQxEjAQBgNVBAMTCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBAOwmcDqlyOwC8vv3j7NrC1Y24sBmgAyfuLy0Y4KF
-yakZIVJQSWLm2NyjmK3a3ZN2gjsv8dcLdg+8KJvvwUDhMxMeS+xXS4UjHX27crL2
-AouKI/ueAC+thhfvdPIgR/opnrLXueK6kRgLiHOq4Ao18QJ0VCYhpfQx73ZXAMPN
-g4XdktmdZURCx96noYB6oG5SQ/SL2LT+g5GDPbJHGDIvMSe6j1no5Sqn11Q46Azf
-DZfhP6+OzT7zWOGCvi/Tn7qPQ6hX27esin93zlKA9fY/hIbq2o5u6ARS0SV3xNhd
-8MlHC7s4ML0SD7ecZMbK6Xb4ECFvVkiNa0SScEpJ21eEL5sCAwEAAaM9MDswHQYD
-VR0OBBYEFBNQ3LdaHZHA44JakfiUWV9pm7RbMBoGA1UdEQQTMBGCCWxvY2FsaG9z
-dIcEfwAAATANBgkqhkiG9w0BAQsFAAOCAQEAHTGU1JEjwDOongGlRC+e+zJVLymJ
-6x+npvmrIwjpGL/FoSfEtk8UH4TU02hzXPrq+mKlYIXVgvh2Ip7LSPSBNH1dPksi
-qhKXxNsnqdED9svQ8wjoIC/4PNJ1+cRUwOeC5rmEZlJaBmL7qgAmf/UsgPs5/zM9
-a+OEOyCoiA+I8hQYBhrbeDoJGhLsIxePMQVTPjoKHk10j+o7h7MpOmeCe4Sy3pT4
-yN+Z3esa9wlJoRiJVqlYoYq2ZI4NedTWksVu+B2sdNb8jWMT4V6gCF8Se/rNKifr
-kR0KR/InP19Ioz6t7IMYFyVDaoUsRK8DmUlTwXiWV+5sCiJZYYUOLGIbTg==
------END CERTIFICATE-----
diff --git a/pom.xml b/pom.xml
index 5ffb33d..01f5309 100644
--- a/pom.xml
+++ b/pom.xml
@@ -415,6 +415,7 @@
<exclude>**/*.cnf</exclude>
<exclude>**/*.conf</exclude>
<exclude>**/*.csv</exclude>
+ <exclude>**/*.der</exclude>
<exclude>**/*.ftl</exclude>
<exclude>**/*.graphql</exclude>
<exclude>**/*.ics</exclude>
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index 1c57d37..c4c65c0 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -25,6 +25,7 @@ cache-networking3:
- jsch
- ssh
cloud:
+ - solr
- aws
- aws2
- azure
@@ -33,7 +34,6 @@ cloud:
- grpc
- protobuf
- smallrye-reactive-messaging
- - solr
core-main-validation:
- core
- core-discovery-disabled