diff --git a/.gitignore b/.gitignore index b6f7c00..381294d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ -.idea/libraries -.idea/tasks.xml -.idea/workspace.xml +.idea/ target +*.iml \ No newline at end of file diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 2cd4bcc..0000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,449 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml deleted file mode 100644 index 79ee123..0000000 --- a/.idea/codeStyles/codeStyleConfig.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index e4563dd..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/copyright/Apache_License__Version_2_0.xml b/.idea/copyright/Apache_License__Version_2_0.xml deleted file mode 100644 index 1268441..0000000 --- a/.idea/copyright/Apache_License__Version_2_0.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml deleted file mode 100644 index 38b896c..0000000 --- a/.idea/copyright/profiles_settings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index b26911b..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/google-java-format.xml b/.idea/google-java-format.xml deleted file mode 100644 index 2aa056d..0000000 --- a/.idea/google-java-format.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 0cb3555..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index c0e156d..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations/All_Tests.xml b/.idea/runConfigurations/All_Tests.xml deleted file mode 100644 index a557a9b..0000000 --- a/.idea/runConfigurations/All_Tests.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 1ed12ec..d68e76f 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,10 @@ | `unit-test-8` | [![unit-test-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/client-certificate-mapper/jobs/unit-test-8/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/client-certificate-mapper/jobs/unit-test-8) | `deploy` | [![deploy-master](https://java-experience.ci.springapps.io/api/v1/teams/java-experience/pipelines/client-certificate-mapper/jobs/deploy/badge)](https://java-experience.ci.springapps.io/teams/java-experience/pipelines/client-certificate-mapper/jobs/deploy) -The `java-buildpack-client-certificate-mapper` is a Servlet filter that maps the `X-Forwarded-Client-Cert` to the `javax.servlet.request.X509Certificate` Servlet attribute. +The `java-buildpack-client-certificate-mapper` is a Servlet filter that maps the `X-Forwarded-Client-Cert` to the `jakarta.servlet.request.X509Certificate` Servlet attribute. ## Development -The project depends on Java 7. To build from source, run the following: +The project depends on Java 17. To build from source, run the following: ```shell $ ./mvnw clean package diff --git a/ci/deploy.sh b/ci/deploy.sh index ec81cec..d242e3f 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -4,5 +4,7 @@ set -euo pipefail [[ -d $PWD/maven && ! -d $HOME/.m2 ]] && ln -s $PWD/maven $HOME/.m2 +REPOSITORY="${PWD}"/repository + cd java-buildpack-client-certificate-mapper -./mvnw -q -Dmaven.test.skip=true deploy +./mvnw -q -Dmaven.test.skip=true deploy -DcreateChecksum=true -DaltDeploymentRepository="local::default::file://${REPOSITORY}" \ No newline at end of file diff --git a/ci/deploy.yml b/ci/deploy.yml deleted file mode 100644 index 0c13e5b..0000000 --- a/ci/deploy.yml +++ /dev/null @@ -1,21 +0,0 @@ ---- -platform: linux - -image_resource: - type: registry-image - source: - repository: openjdk - tag: 8-jdk - -inputs: -- name: java-buildpack-client-certificate-mapper - -caches: -- path: maven - -run: - path: java-buildpack-client-certificate-mapper/ci/deploy.sh - -params: - ARTIFACTORY_USERNAME: - ARTIFACTORY_PASSWORD: diff --git a/ci/promote-to-maven-central.sh b/ci/promote-to-maven-central.sh new file mode 100644 index 0000000..639f0ad --- /dev/null +++ b/ci/promote-to-maven-central.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env bash + +set -euo pipefail + +export BUILD_INFO_LOCATION=$(pwd)/repository/build-info.json + +java -jar /concourse-release-scripts.jar publishToCentral 'RELEASE' "$BUILD_INFO_LOCATION" repository + +echo "Sync complete" \ No newline at end of file diff --git a/ci/unit-test.yml b/ci/unit-test.yml deleted file mode 100644 index 6ada048..0000000 --- a/ci/unit-test.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -platform: linux - -image_resource: - type: registry-image - source: - repository: openjdk - tag: 8-jdk - -inputs: -- name: java-buildpack-client-certificate-mapper - -caches: -- path: maven - -run: - path: java-buildpack-client-certificate-mapper/ci/unit-test.sh diff --git a/java-buildpack-client-certificate-mapper.iml b/java-buildpack-client-certificate-mapper.iml deleted file mode 100644 index 434b359..0000000 --- a/java-buildpack-client-certificate-mapper.iml +++ /dev/null @@ -1,87 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 1a8cf2b..f245e8f 100644 --- a/pom.xml +++ b/pom.xml @@ -26,18 +26,41 @@ org.springframework.boot spring-boot-dependencies - 2.1.7.RELEASE + 3.1.5 org.cloudfoundry java-buildpack-client-certificate-mapper Cloud Foundry Client Certificate Mapper - 1.12.0.BUILD-SNAPSHOT + 2.0.0-SNAPSHOT jar + + + + VMware + info@vmware.com + VMware, Inc. + https://www.cloudfoundry.org + + + + + The Apache License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + + https://github.com/cloudfoundry/java-buildpack-client-certificate-mapper + + https://github.com/cloudfoundry/java-buildpack-client-certificate-mapper + UTF-8 + 3.1.1 + 2.22.1 + 3.1.0 + 3.8.1 + 17 @@ -47,8 +70,8 @@ test - javax.servlet - javax.servlet-api + jakarta.servlet + jakarta.servlet-api provided @@ -61,6 +84,11 @@ spring-boot-starter-test test + + org.junit.vintage + junit-vintage-engine + test + org.springframework.boot spring-boot-starter-web @@ -73,28 +101,21 @@ org.apache.maven.plugins maven-compiler-plugin - 3.8.1 + ${maven-compiler-plugin.version} - - - - -Xlint:all - -Xlint:-options - - true - 1.8 - 1.8 + ${java-version} + ${java-version} org.apache.maven.plugins maven-deploy-plugin - 2.8.2 + ${maven-deploy-plugin.version} org.apache.maven.plugins maven-source-plugin - 3.1.0 + ${maven-source-plugin.version} attach-sources @@ -107,46 +128,31 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.1 + ${maven-surefire-plugin.version} random - org.jfrog.buildinfo - artifactory-maven-plugin - 2.6.1 - false + org.apache.maven.plugins + maven-javadoc-plugin + 3.6.0 + + + https://projectreactor.io/docs/core/release/api/ + + true + 8 + - build-info + attach-javadocs - publish + jar - - - https://repo.spring.io - {{ARTIFACTORY_USERNAME}} - {{ARTIFACTORY_PASSWORD}} - {{ARTIFACTORY_REPO_KEY|"libs-release-local"}} - {{ARTIFACTORY_SNAPSHOT_REPO_KEY|"libs-snapshot-local"}} - - - - - - - false - - central - bintray-plugins - https://jcenter.bintray.com - - - diff --git a/src/main/java/org/cloudfoundry/router/ClientCertificateMapper.java b/src/main/java/org/cloudfoundry/router/ClientCertificateMapper.java index 226ddda..6ea9d67 100644 --- a/src/main/java/org/cloudfoundry/router/ClientCertificateMapper.java +++ b/src/main/java/org/cloudfoundry/router/ClientCertificateMapper.java @@ -16,13 +16,13 @@ package org.cloudfoundry.router; -import javax.servlet.Filter; -import javax.servlet.FilterChain; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.ServletResponse; +import jakarta.servlet.http.HttpServletRequest; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; @@ -40,12 +40,12 @@ import java.util.logging.Logger; /** - * A Servlet {@link Filter} that translates the {@code X-Forwarded-Client} HTTP header to the {@code javax.servlet.request.X509Certificate} Servlet attribute. This implementation handles both + * A Servlet {@link Filter} that translates the {@code X-Forwarded-Client} HTTP header to the {@code jakarta.servlet.request.X509Certificate} Servlet attribute. This implementation handles both * multiple headers as well as the RFC 7230 comma delimited equivalent. */ final class ClientCertificateMapper implements Filter { - static final String ATTRIBUTE = "javax.servlet.request.X509Certificate"; + static final String ATTRIBUTE = "jakarta.servlet.request.X509Certificate"; static final String HEADER = "X-Forwarded-Client-Cert"; diff --git a/src/main/java/org/cloudfoundry/router/ClientCertificateMapperAutoConfiguration.java b/src/main/java/org/cloudfoundry/router/ClientCertificateMapperAutoConfiguration.java index c9c05b3..1e515ac 100644 --- a/src/main/java/org/cloudfoundry/router/ClientCertificateMapperAutoConfiguration.java +++ b/src/main/java/org/cloudfoundry/router/ClientCertificateMapperAutoConfiguration.java @@ -24,7 +24,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; -import javax.servlet.Filter; +import jakarta.servlet.Filter; import java.security.cert.CertificateException; @ConditionalOnClass({Filter.class, FilterRegistrationBean.class}) diff --git a/src/main/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializer.java b/src/main/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializer.java index b691b07..7617148 100644 --- a/src/main/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializer.java +++ b/src/main/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializer.java @@ -16,11 +16,11 @@ package org.cloudfoundry.router; -import javax.servlet.DispatcherType; -import javax.servlet.FilterRegistration; -import javax.servlet.ServletContainerInitializer; -import javax.servlet.ServletContext; -import javax.servlet.ServletException; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.FilterRegistration; +import jakarta.servlet.ServletContainerInitializer; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletException; import java.security.cert.CertificateException; import java.util.EnumSet; import java.util.Set; diff --git a/src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer b/src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer similarity index 100% rename from src/main/resources/META-INF/services/javax.servlet.ServletContainerInitializer rename to src/main/resources/META-INF/services/jakarta.servlet.ServletContainerInitializer diff --git a/src/test/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializerTest.java b/src/test/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializerTest.java index f6900f8..6acb153 100644 --- a/src/test/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializerTest.java +++ b/src/test/java/org/cloudfoundry/router/ClientCertificateMapperServletContainerInitializerTest.java @@ -19,10 +19,10 @@ import org.junit.Test; import org.springframework.mock.web.MockServletContext; -import javax.servlet.DispatcherType; -import javax.servlet.Filter; -import javax.servlet.FilterRegistration; -import javax.servlet.ServletException; +import jakarta.servlet.DispatcherType; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterRegistration; +import jakarta.servlet.ServletException; import java.util.EnumSet; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/org/cloudfoundry/router/ClientCertificateMapperTest.java b/src/test/java/org/cloudfoundry/router/ClientCertificateMapperTest.java index 58842ed..2278828 100644 --- a/src/test/java/org/cloudfoundry/router/ClientCertificateMapperTest.java +++ b/src/test/java/org/cloudfoundry/router/ClientCertificateMapperTest.java @@ -21,7 +21,7 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import javax.servlet.ServletException; +import jakarta.servlet.ServletException; import java.io.IOException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate;