From d26ce7ed0d55c6756a94cee9c6dcfa1a3e1af1b4 Mon Sep 17 00:00:00 2001 From: Fiete Ostkamp Date: Fri, 3 Jan 2025 16:22:09 +0100 Subject: [PATCH] Spring-boot 3 upgrade in resources Issue-ID: AAI-4099 Change-Id: I8bf22cd7a6d747b7e8cdcba12efcf547f6ccb390 Signed-off-by: Fiete Ostkamp --- aai-resources/pom.xml | 100 +++++--------- aai-resources/src/main/docker/Dockerfile | 2 +- .../src/main/java/org/onap/aai/ResourcesApp.java | 4 +- .../java/org/onap/aai/config/ErrorHandler.java | 10 +- .../aai/config/PropertyPasswordConfiguration.java | 2 + .../interceptors/post/InvalidResponseStatus.java | 10 +- .../post/ResponseHeaderManipulation.java | 10 +- .../post/ResponseTransactionLogging.java | 12 +- .../aai/interceptors/pre/HeaderValidation.java | 12 +- .../interceptors/pre/HttpHeaderInterceptor.java | 10 +- .../aai/interceptors/pre/NamespaceInterceptor.java | 10 +- .../interceptors/pre/OneWaySslAuthorization.java | 12 +- .../pre/RequestHeaderManipulation.java | 10 +- .../aai/interceptors/pre/RequestModification.java | 12 +- .../pre/RequestTransactionLogging.java | 16 +-- .../aai/interceptors/pre/RetiredInterceptor.java | 10 +- .../aai/interceptors/pre/VersionInterceptor.java | 10 +- .../interceptors/pre/VersionLatestInterceptor.java | 8 +- .../java/org/onap/aai/rest/BulkAddConsumer.java | 2 +- .../main/java/org/onap/aai/rest/BulkConsumer.java | 24 ++-- .../org/onap/aai/rest/BulkProcessConsumer.java | 2 +- .../java/org/onap/aai/rest/ExampleConsumer.java | 22 +-- .../java/org/onap/aai/rest/ExceptionHandler.java | 16 +-- .../org/onap/aai/rest/ResourcesController.java | 47 ++----- .../org/onap/aai/rest/URLFromVertexIdConsumer.java | 14 +- .../java/org/onap/aai/rest/VertexIdConsumer.java | 6 +- .../java/org/onap/aai/rest/bulk/BulkOperation.java | 2 +- .../onap/aai/rest/bulk/BulkOperationResponse.java | 2 +- .../rest/bulk/BulkSingleTransactionConsumer.java | 30 ++--- .../java/org/onap/aai/rest/bulk/BulkUriInfo.java | 2 +- ...SecurityConfig.java => WebSecurityConfig.ja_va} | 15 ++- .../java/org/onap/aai/rest/util/EchoResponse.java | 20 +-- .../org/onap/aai/rest/util/ValidateEncoding.java | 4 +- .../org/onap/aai/service/AuthorizationService.java | 2 +- .../org/onap/aai/service/ResourcesService.java | 27 ++-- .../java/org/onap/aai/service/RetiredService.java | 2 +- .../java/org/onap/aai/tasks/AaiGraphChecker.java | 4 +- .../java/org/onap/aai/web/JerseyConfiguration.java | 8 +- .../src/main/resources/application.properties | 13 +- .../src/test/java/org/onap/aai/AAISetup.java | 2 +- .../src/test/java/org/onap/aai/HttpTestUtil.java | 14 +- .../src/test/java/org/onap/aai/PayloadUtil.java | 6 +- .../org/onap/aai/ResourcesTestConfiguration.java | 24 +++- .../onap/aai/config/WebClientConfiguration.java | 2 +- .../it/multitenancy/KeycloakTestConfiguration.java | 72 ---------- .../it/multitenancy/KeycloakTestProperties.java | 45 ------- .../onap/aai/it/multitenancy/MultiTenancyIT.java | 124 ----------------- .../org/onap/aai/it/multitenancy/RoleHandler.java | 54 -------- .../org/onap/aai/it/performance/K6ReadTest.java | 2 +- .../org/onap/aai/it/performance/K6WriteTest.java | 3 +- .../org/onap/aai/rest/AbstractSpringRestTest.java | 2 +- .../org/onap/aai/rest/BulkAddConsumerTest.java | 2 +- .../org/onap/aai/rest/BulkProcessConsumerTest.java | 8 +- .../aai/rest/BulkProcessorTestAbstraction.java | 12 +- .../java/org/onap/aai/rest/ConfigurationTest.java | 2 +- .../org/onap/aai/rest/ExampleConsumerTest.java | 12 +- .../org/onap/aai/rest/ExceptionHandlerTest.java | 14 +- .../onap/aai/rest/URLFromVertexIdConsumerTest.java | 12 +- .../org/onap/aai/rest/VertexIdConsumerTest.java | 12 +- .../bulk/BulkSingleTransactionConsumerTest.java | 4 +- .../rest/resources/ResourcesControllerTest.java | 147 +++++++++------------ .../org/onap/aai/rest/util/EchoResponseTest.java | 12 +- .../onap/aai/rest/util/ValidateEncodingTest.java | 6 +- .../src/test/resources/application-test.properties | 5 +- pom.xml | 8 +- 65 files changed, 388 insertions(+), 742 deletions(-) rename aai-resources/src/main/java/org/onap/aai/rest/security/{WebSecurityConfig.java => WebSecurityConfig.ja_va} (90%) delete mode 100644 aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestConfiguration.java delete mode 100644 aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestProperties.java delete mode 100644 aai-resources/src/test/java/org/onap/aai/it/multitenancy/MultiTenancyIT.java delete mode 100644 aai-resources/src/test/java/org/onap/aai/it/multitenancy/RoleHandler.java diff --git a/aai-resources/pom.xml b/aai-resources/pom.xml index e3dd9ce1..37cbf0b5 100644 --- a/aai-resources/pom.xml +++ b/aai-resources/pom.xml @@ -28,10 +28,11 @@ org.onap.aai.resources resources - 1.15.4-SNAPSHOT + 1.16.0-SNAPSHOT - 11 + 5.0.0 + 17 org.onap.aai.ResourcesApp @@ -81,17 +82,15 @@ 3.5.8 --> 4.0.1 - 11.0.2 - 1.6.1 + 1.20.4 4.4.0 - 2.7.7 true 1.6.8 - 2021.0.9 + 2022.0.5 @@ -303,12 +302,12 @@ spring-boot-starter-jetty - org.springframework.cloud - spring-cloud-starter-sleuth + io.micrometer + micrometer-tracing-bridge-brave - org.springframework.cloud - spring-cloud-sleuth-zipkin + io.zipkin.reporter2 + zipkin-reporter-brave io.micrometer @@ -320,9 +319,8 @@ 1.8.13 - javax.ws.rs - javax.ws.rs-api - 2.1 + jakarta.ws.rs + jakarta.ws.rs-api jakarta.xml.bind @@ -338,9 +336,9 @@ jopt-simple - io.swagger - swagger-core - ${swagger.version} + io.swagger.core.v3 + swagger-core-jakarta + 2.2.27 javax.ws.rs @@ -348,11 +346,6 @@ - - io.swagger - swagger-annotations - ${swagger.version} - io.swagger swagger-jersey2-jaxrs @@ -417,7 +410,6 @@ org.hamcrest hamcrest - 2.2 junit @@ -430,8 +422,8 @@ guava - com.fasterxml.jackson.jaxrs - jackson-jaxrs-json-provider + com.fasterxml.jackson.jakarta.rs + jackson-jakarta-rs-json-provider org.mockito @@ -503,6 +495,10 @@ org.springframework spring-web + + junit + junit + @@ -513,8 +509,8 @@ with jersey 2 which we are using --> - org.apache.httpcomponents - httpclient + org.apache.httpcomponents.client5 + httpclient5 org.assertj @@ -580,7 +576,6 @@ org.janusgraph janusgraph-inmemory - ${janusgraph.version} @@ -591,49 +586,39 @@ org.springframework.boot spring-boot-starter-security - - org.keycloak - keycloak-spring-boot-starter - - - com.github.dasniko - testcontainers-keycloak - ${testcontainers.version} - test - org.junit.jupiter junit-jupiter test - - org.keycloak - keycloak-admin-client - ${keycloak.version} - test - org.testcontainers testcontainers - 1.19.8 + ${testcontainers.version} test - + org.testcontainers junit-jupiter - 1.19.8 + ${testcontainers.version} test org.testcontainers k6 - 1.19.8 + ${testcontainers.version} + test + + + + junit + junit test @@ -655,13 +640,6 @@ - - org.keycloak.bom - keycloak-adapter-bom - ${keycloak.version} - pom - import - org.springframework.cloud spring-cloud-dependencies @@ -669,11 +647,6 @@ pom import - - com.google.guava - guava - 33.3.1-jre - com.datastax.oss @@ -685,11 +658,6 @@ java-driver-query-builder ${cassandra-driver.version} - - com.datastax.oss - native-protocol - ${datastax.native-protocol.version} - org.apache.commons @@ -848,7 +816,6 @@ com.mycila license-maven-plugin - 3.0
LICENSE.TXT
@@ -977,7 +944,6 @@ org.apache.maven.plugins maven-failsafe-plugin - 3.1.2 ${project.build.outputDirectory} diff --git a/aai-resources/src/main/docker/Dockerfile b/aai-resources/src/main/docker/Dockerfile index b15abf98..bb8e5658 100644 --- a/aai-resources/src/main/docker/Dockerfile +++ b/aai-resources/src/main/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM eclipse-temurin:11-jre-alpine +FROM eclipse-temurin:17-jre-alpine USER nobody ENV SERVER_PORT=8447 diff --git a/aai-resources/src/main/java/org/onap/aai/ResourcesApp.java b/aai-resources/src/main/java/org/onap/aai/ResourcesApp.java index 51f5609f..3d8d0e53 100644 --- a/aai-resources/src/main/java/org/onap/aai/ResourcesApp.java +++ b/aai-resources/src/main/java/org/onap/aai/ResourcesApp.java @@ -20,8 +20,8 @@ package org.onap.aai; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; import org.apache.commons.lang3.exception.ExceptionUtils; import org.onap.aai.aailog.logs.AaiDebugLog; diff --git a/aai-resources/src/main/java/org/onap/aai/config/ErrorHandler.java b/aai-resources/src/main/java/org/onap/aai/config/ErrorHandler.java index 98fa14b4..68bb187e 100644 --- a/aai-resources/src/main/java/org/onap/aai/config/ErrorHandler.java +++ b/aai-resources/src/main/java/org/onap/aai/config/ErrorHandler.java @@ -24,11 +24,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.core.MediaType; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.core.MediaType; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; diff --git a/aai-resources/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java b/aai-resources/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java index f205804f..c10e60fe 100644 --- a/aai-resources/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java +++ b/aai-resources/src/main/java/org/onap/aai/config/PropertyPasswordConfiguration.java @@ -32,6 +32,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.io.IOUtils; +import org.slf4j.Logger; import org.springframework.context.ApplicationContextInitializer; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.core.env.ConfigurableEnvironment; @@ -76,6 +77,7 @@ public class PropertyPasswordConfiguration implements ApplicationContextInitiali log.info("Not using AAF Certman password file"); } } catch (IOException e) { + Logger smth = log; log.warn("Not using AAF Certman password file, e=" + e.getMessage()); } finally { if (passwordStream != null) { diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/post/InvalidResponseStatus.java b/aai-resources/src/main/java/org/onap/aai/interceptors/post/InvalidResponseStatus.java index 1d207440..6a398b7e 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/post/InvalidResponseStatus.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/post/InvalidResponseStatus.java @@ -24,11 +24,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.List; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.core.MediaType; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; +import jakarta.ws.rs.core.MediaType; import org.onap.aai.exceptions.AAIException; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java b/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java index 93e213e1..fd9e9289 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseHeaderManipulation.java @@ -22,11 +22,11 @@ package org.onap.aai.interceptors.post; import java.io.IOException; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.core.MediaType; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; +import jakarta.ws.rs.core.MediaType; import org.onap.aai.interceptors.AAIContainerFilter; import org.onap.aai.interceptors.AAIHeaderProperties; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java b/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java index cb193afa..64c15807 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/post/ResponseTransactionLogging.java @@ -26,12 +26,12 @@ import java.io.IOException; import java.util.Objects; import java.util.Optional; -import javax.annotation.Priority; -import javax.servlet.http.HttpServletResponse; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; +import jakarta.annotation.Priority; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; import org.onap.aai.exceptions.AAIException; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java index 294cb0a8..80e6e018 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HeaderValidation.java @@ -25,12 +25,12 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import org.onap.aai.exceptions.AAIException; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HttpHeaderInterceptor.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HttpHeaderInterceptor.java index 17cdeff4..cc13fc0d 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HttpHeaderInterceptor.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/HttpHeaderInterceptor.java @@ -22,11 +22,11 @@ package org.onap.aai.interceptors.pre; import java.io.IOException; -import javax.annotation.Priority; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; +import jakarta.annotation.Priority; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; import org.onap.aai.interceptors.AAIContainerFilter; import org.onap.aai.interceptors.AAIHeaderProperties; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/NamespaceInterceptor.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/NamespaceInterceptor.java index c97e475a..f4d2dd35 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/NamespaceInterceptor.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/NamespaceInterceptor.java @@ -26,11 +26,11 @@ import java.io.InputStreamReader; import java.io.Reader; import java.io.StringReader; -import javax.annotation.Priority; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.ext.ReaderInterceptor; -import javax.ws.rs.ext.ReaderInterceptorContext; +import jakarta.annotation.Priority; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.ext.ReaderInterceptor; +import jakarta.ws.rs.ext.ReaderInterceptorContext; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java index b5321052..e25e7b8f 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/OneWaySslAuthorization.java @@ -25,12 +25,12 @@ import java.util.ArrayList; import java.util.List; import java.util.Optional; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import org.onap.aai.ResourcesProfiles; import org.onap.aai.exceptions.AAIException; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java index 3fb6c81b..18274f38 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestHeaderManipulation.java @@ -23,11 +23,11 @@ package org.onap.aai.interceptors.pre; import java.util.Collections; import java.util.regex.Matcher; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MultivaluedMap; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.MultivaluedMap; import org.onap.aai.interceptors.AAIContainerFilter; import org.onap.aai.interceptors.AAIHeaderProperties; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java index d40fdbbf..100c9ef1 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestModification.java @@ -27,12 +27,12 @@ import java.util.Map; import java.util.Set; import java.util.stream.Collectors; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriBuilder; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.UriBuilder; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java index 2d0dcdca..965c1682 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RequestTransactionLogging.java @@ -30,14 +30,14 @@ import java.security.SecureRandom; import java.util.Random; import java.util.UUID; -import javax.annotation.Priority; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; +import jakarta.annotation.Priority; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.UriInfo; import org.glassfish.jersey.message.internal.ReaderWriter; import org.glassfish.jersey.server.ContainerException; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RetiredInterceptor.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RetiredInterceptor.java index 9ca1283d..3765886c 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RetiredInterceptor.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/RetiredInterceptor.java @@ -26,11 +26,11 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.Response; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.Response; import org.onap.aai.exceptions.AAIException; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionInterceptor.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionInterceptor.java index 7e1b64e9..fc74b2a9 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionInterceptor.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionInterceptor.java @@ -26,11 +26,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; -import javax.ws.rs.core.Response; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; +import jakarta.ws.rs.core.Response; import org.onap.aai.exceptions.AAIException; import org.onap.aai.interceptors.AAIContainerFilter; diff --git a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionLatestInterceptor.java b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionLatestInterceptor.java index 2ad9ace1..13d7a7b0 100644 --- a/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionLatestInterceptor.java +++ b/aai-resources/src/main/java/org/onap/aai/interceptors/pre/VersionLatestInterceptor.java @@ -22,10 +22,10 @@ package org.onap.aai.interceptors.pre; import java.net.URI; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.PreMatching; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.PreMatching; import org.onap.aai.interceptors.AAIContainerFilter; import org.onap.aai.setup.SchemaVersions; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/BulkAddConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/BulkAddConsumer.java index 3287dd16..e257f158 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/BulkAddConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/BulkAddConsumer.java @@ -22,7 +22,7 @@ package org.onap.aai.rest; import io.micrometer.core.annotation.Timed; -import javax.ws.rs.Path; +import jakarta.ws.rs.Path; import org.onap.aai.restcore.HttpMethod; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/BulkConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/BulkConsumer.java index c7f09118..3f99e7e1 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/BulkConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/BulkConsumer.java @@ -38,18 +38,18 @@ import java.util.Map.Entry; import java.util.Set; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.PUT; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriInfo; import org.javatuples.Pair; import org.onap.aai.config.SpringContextAware; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/BulkProcessConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/BulkProcessConsumer.java index b2816811..b2ded37b 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/BulkProcessConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/BulkProcessConsumer.java @@ -22,7 +22,7 @@ package org.onap.aai.rest; import io.micrometer.core.annotation.Timed; -import javax.ws.rs.Path; +import jakarta.ws.rs.Path; import org.onap.aai.restcore.HttpMethod; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/ExampleConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/ExampleConsumer.java index b0d61af5..97ccdb27 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/ExampleConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/ExampleConsumer.java @@ -22,17 +22,17 @@ package org.onap.aai.rest; import io.micrometer.core.annotation.Timed; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; -import javax.ws.rs.core.UriInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; +import jakarta.ws.rs.core.UriInfo; import org.onap.aai.config.SpringContextAware; import org.onap.aai.exceptions.AAIException; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/ExceptionHandler.java b/aai-resources/src/main/java/org/onap/aai/rest/ExceptionHandler.java index 7af598b7..f975ebb8 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/ExceptionHandler.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/ExceptionHandler.java @@ -26,14 +26,14 @@ import com.sun.istack.SAXParseException2; import java.util.ArrayList; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; import org.onap.aai.exceptions.AAIException; import org.onap.aai.logging.ErrorLogHelper; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/ResourcesController.java b/aai-resources/src/main/java/org/onap/aai/rest/ResourcesController.java index 12839d48..e0a05842 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/ResourcesController.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/ResourcesController.java @@ -28,14 +28,12 @@ import java.security.Principal; import java.util.*; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.*; -import javax.ws.rs.core.*; -import javax.ws.rs.core.Response.Status; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.*; +import jakarta.ws.rs.core.Response.Status; import org.apache.commons.lang3.ObjectUtils; -import org.keycloak.adapters.springsecurity.account.SimpleKeycloakAccount; -import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken; import org.onap.aai.concurrent.AaiCallable; import org.onap.aai.introspection.Introspector; import org.onap.aai.introspection.sideeffect.OwnerCheck; @@ -65,9 +63,8 @@ public class ResourcesController extends RESTAPI { @Context HttpHeaders headers, @Context UriInfo info, @Context HttpServletRequest req) { - Set roles = getRoles(req.getUserPrincipal(), req.getMethod()); MediaType mediaType = headers.getMediaType(); - return resourcesService.handleWrites(mediaType, HttpMethod.PUT, content, versionParam, uri, headers, info, roles); + return resourcesService.handleWrites(mediaType, HttpMethod.PUT, content, versionParam, uri, headers, info); } @PUT @@ -96,9 +93,8 @@ public class ResourcesController extends RESTAPI { @Context HttpHeaders headers, @Context UriInfo info, @Context HttpServletRequest req) { - Set roles = getRoles(req.getUserPrincipal(), req.getMethod()); MediaType mediaType = MediaType.APPLICATION_JSON_TYPE; - return resourcesService.handleWrites(mediaType, HttpMethod.MERGE_PATCH, content, versionParam, uri, headers, info, roles); + return resourcesService.handleWrites(mediaType, HttpMethod.MERGE_PATCH, content, versionParam, uri, headers, info); } @@ -134,7 +130,6 @@ public class ResourcesController extends RESTAPI { @Context HttpHeaders headers, @Context UriInfo info, @Context HttpServletRequest req) { - Set roles = getRoles(req.getUserPrincipal(), req.getMethod()); Pageable pageable = includeTotalCount == false ? new Pageable(resultIndex -1, resultSize) : new Pageable(resultIndex -1, resultSize).includeTotalCount(); @@ -144,7 +139,7 @@ public class ResourcesController extends RESTAPI { @Override public Response process() { return resourcesService.getLegacy(versionParam, uri, depthParam, cleanUp, headers, info, req, - new HashSet(), pageable, roles); + new HashSet(), pageable); } }); } @@ -159,8 +154,7 @@ public class ResourcesController extends RESTAPI { @Context UriInfo info, @QueryParam("resource-version") String resourceVersion, @Context HttpServletRequest req) { - Set roles = getRoles(req.getUserPrincipal(), req.getMethod()); - return resourcesService.delete(versionParam, uri, headers, info, req, roles); + return resourcesService.delete(versionParam, uri, headers, info, req); } /** @@ -210,29 +204,4 @@ public class ResourcesController extends RESTAPI { protected boolean isEmptyObject(Introspector obj) { return "{}".equals(obj.marshal(false)); } - - private Set getRoles(Principal userPrincipal, String method) { - KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) userPrincipal; - if (ObjectUtils.isEmpty(token)) { - return Collections.emptySet(); - } - SimpleKeycloakAccount account = (SimpleKeycloakAccount) token.getDetails(); - if (ObjectUtils.isEmpty(account)) { - return Collections.emptySet(); - } - // When the request is not a GET, we need to exclude ReadOnly access roles - if (isNotGetRequest(method)) { - return getExcludedReadOnlyAccessRoles(account); - } - return account.getRoles(); - } - - private Set getExcludedReadOnlyAccessRoles(SimpleKeycloakAccount account) { - return account.getRoles().stream().filter(role -> !role.endsWith(OwnerCheck.READ_ONLY_SUFFIX)) - .collect(Collectors.toSet()); - } - - private boolean isNotGetRequest(String method) { - return !Action.GET.name().equalsIgnoreCase(method); - } } diff --git a/aai-resources/src/main/java/org/onap/aai/rest/URLFromVertexIdConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/URLFromVertexIdConsumer.java index d64e8622..41984a2b 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/URLFromVertexIdConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/URLFromVertexIdConsumer.java @@ -25,13 +25,13 @@ import io.micrometer.core.annotation.Timed; import java.net.URI; import java.util.Iterator; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.*; -import javax.ws.rs.core.Response.Status; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.*; +import jakarta.ws.rs.core.Response.Status; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.onap.aai.config.SpringContextAware; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/VertexIdConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/VertexIdConsumer.java index f0a3c3eb..7c9c1cdb 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/VertexIdConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/VertexIdConsumer.java @@ -27,9 +27,9 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.*; -import javax.ws.rs.core.*; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.*; +import jakarta.ws.rs.core.*; import org.apache.tinkerpop.gremlin.structure.Vertex; import org.javatuples.Pair; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperation.java b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperation.java index de31b5a4..7dc681bc 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperation.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperation.java @@ -24,7 +24,7 @@ import java.net.URI; import java.util.List; import java.util.Map.Entry; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.UriInfo; import org.onap.aai.introspection.Introspector; import org.onap.aai.parsers.query.QueryParser; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperationResponse.java b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperationResponse.java index b621d50e..7e354037 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperationResponse.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkOperationResponse.java @@ -24,7 +24,7 @@ import java.net.URI; import java.util.ArrayList; import java.util.List; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import org.javatuples.Pair; import org.onap.aai.restcore.HttpMethod; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java index 900da96a..e5f99438 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumer.java @@ -36,17 +36,17 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriInfo; import org.javatuples.Pair; import org.onap.aai.config.SpringContextAware; @@ -93,8 +93,8 @@ public class BulkSingleTransactionConsumer extends RESTAPI { } @POST - @Consumes(value = javax.ws.rs.core.MediaType.APPLICATION_JSON) - @Produces(value = javax.ws.rs.core.MediaType.APPLICATION_JSON) + @Consumes(value = jakarta.ws.rs.core.MediaType.APPLICATION_JSON) + @Produces(value = jakarta.ws.rs.core.MediaType.APPLICATION_JSON) public Response process(String content, @PathParam(value = "version") String versionParam, @Context HttpHeaders headers, @Context UriInfo info, @Context HttpServletRequest req) { @@ -155,12 +155,12 @@ public class BulkSingleTransactionConsumer extends RESTAPI { .entity(new GsonBuilder().serializeNulls().create().toJson(transactionResponse)).build(); } else { response = getErrorResponseForFirstFailure(transaction, results.getValue1(), info, - javax.ws.rs.HttpMethod.POST, headers); + jakarta.ws.rs.HttpMethod.POST, headers); } } catch (AAIException e) { - response = consumerExceptionResponseGenerator(headers, info, javax.ws.rs.HttpMethod.POST, e); + response = consumerExceptionResponseGenerator(headers, info, jakarta.ws.rs.HttpMethod.POST, e); success = false; } finally { if (dbEngine != null) { diff --git a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkUriInfo.java b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkUriInfo.java index c1e33eb6..4e510009 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkUriInfo.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/bulk/BulkUriInfo.java @@ -23,7 +23,7 @@ package org.onap.aai.rest.bulk; import java.net.URI; import java.util.List; -import javax.ws.rs.core.*; +import jakarta.ws.rs.core.*; public class BulkUriInfo implements UriInfo { diff --git a/aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.java b/aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.ja_va similarity index 90% rename from aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.java rename to aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.ja_va index c63a70a0..82efbaad 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/security/WebSecurityConfig.ja_va @@ -45,7 +45,10 @@ import org.springframework.security.web.session.HttpSessionEventPublisher; @Profile("keycloak") @KeycloakConfiguration @Import({KeycloakSpringBootConfigResolver.class}) -public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { +// public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { +public class WebSecurityConfig { + + AuthenticationManagerBuilder sm; @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) { @@ -65,15 +68,21 @@ public class WebSecurityConfig extends KeycloakWebSecurityConfigurerAdapter { return new RegisterSessionAuthenticationStrategy(new SessionRegistryImpl()); } - @Override + // @Override protected void configure(HttpSecurity http) throws Exception { super.configure(http); http.authorizeRequests().antMatchers("/**").permitAll().and().csrf().disable(); } - @Override + // @Override public void configure(WebSecurity web) { web.ignoring().regexMatchers("^.*/util/echo$"); } + // @Override + public void init(WebSecurity builder) throws Exception { + // TODO Auto-generated method stub + throw new UnsupportedOperationException("Unimplemented method 'init'"); + } + } diff --git a/aai-resources/src/main/java/org/onap/aai/rest/util/EchoResponse.java b/aai-resources/src/main/java/org/onap/aai/rest/util/EchoResponse.java index 0e44a631..03be60b7 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/util/EchoResponse.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/util/EchoResponse.java @@ -22,16 +22,16 @@ package org.onap.aai.rest.util; import java.util.ArrayList; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.Context; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; import org.apache.commons.lang3.BooleanUtils; import org.onap.aai.exceptions.AAIException; diff --git a/aai-resources/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java b/aai-resources/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java index 520bff0c..620786ad 100644 --- a/aai-resources/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java +++ b/aai-resources/src/main/java/org/onap/aai/rest/util/ValidateEncoding.java @@ -23,8 +23,8 @@ package org.onap.aai.rest.util; import java.io.UnsupportedEncodingException; import java.net.URI; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.UriInfo; import org.springframework.web.util.UriUtils; diff --git a/aai-resources/src/main/java/org/onap/aai/service/AuthorizationService.java b/aai-resources/src/main/java/org/onap/aai/service/AuthorizationService.java index 0c219a75..54fdcf79 100644 --- a/aai-resources/src/main/java/org/onap/aai/service/AuthorizationService.java +++ b/aai-resources/src/main/java/org/onap/aai/service/AuthorizationService.java @@ -29,7 +29,7 @@ import java.util.HashMap; import java.util.Map; import java.util.stream.Stream; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.eclipse.jetty.util.security.Password; import org.onap.aai.ResourcesProfiles; diff --git a/aai-resources/src/main/java/org/onap/aai/service/ResourcesService.java b/aai-resources/src/main/java/org/onap/aai/service/ResourcesService.java index d721ff27..4f909c38 100644 --- a/aai-resources/src/main/java/org/onap/aai/service/ResourcesService.java +++ b/aai-resources/src/main/java/org/onap/aai/service/ResourcesService.java @@ -29,14 +29,14 @@ import java.util.List; import java.util.Set; import java.util.stream.Collectors; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriInfo; import org.javatuples.Pair; import org.onap.aai.config.SpringContextAware; @@ -73,7 +73,8 @@ public class ResourcesService { */ public Response getLegacy(String versionParam, String uri, String depthParam, String cleanUp, HttpHeaders headers, UriInfo info, HttpServletRequest req, Set removeQueryParams, - Pageable pageable, Set roles) { + Pageable pageable) { + Set roles = Collections.emptySet(); String sourceOfTruth = headers.getRequestHeaders().getFirst("X-FromAppId"); String transId = headers.getRequestHeaders().getFirst("X-TransactionId"); Response response; @@ -197,8 +198,8 @@ public class ResourcesService { } public Response handleWrites(MediaType mediaType, HttpMethod method, String content, String versionParam, - String uri, HttpHeaders headers, UriInfo info, Set roles) { - + String uri, HttpHeaders headers, UriInfo info) { + Set roles = Collections.emptySet(); Response response; TransactionalGraphEngine dbEngine = null; Loader loader; @@ -395,8 +396,8 @@ public class ResourcesService { } public Response delete(String versionParam, String uri, HttpHeaders headers, UriInfo info, - HttpServletRequest req, Set roles) { - + HttpServletRequest req) { + Set roles = Collections.emptySet(); String outputMediaType = getMediaType(headers.getAcceptableMediaTypes()); String sourceOfTruth = headers.getRequestHeaders().getFirst("X-FromAppId"); String transId = headers.getRequestHeaders().getFirst("X-TransactionId"); diff --git a/aai-resources/src/main/java/org/onap/aai/service/RetiredService.java b/aai-resources/src/main/java/org/onap/aai/service/RetiredService.java index 94b1be15..d39abb01 100644 --- a/aai-resources/src/main/java/org/onap/aai/service/RetiredService.java +++ b/aai-resources/src/main/java/org/onap/aai/service/RetiredService.java @@ -25,7 +25,7 @@ import java.util.List; import java.util.regex.Pattern; import java.util.stream.Collectors; -import javax.annotation.PostConstruct; +import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.PropertySource; diff --git a/aai-resources/src/main/java/org/onap/aai/tasks/AaiGraphChecker.java b/aai-resources/src/main/java/org/onap/aai/tasks/AaiGraphChecker.java index 3c07a529..7aabddbd 100644 --- a/aai-resources/src/main/java/org/onap/aai/tasks/AaiGraphChecker.java +++ b/aai-resources/src/main/java/org/onap/aai/tasks/AaiGraphChecker.java @@ -24,8 +24,8 @@ import java.util.Iterator; import java.util.Timer; import java.util.TimerTask; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.Validate; diff --git a/aai-resources/src/main/java/org/onap/aai/web/JerseyConfiguration.java b/aai-resources/src/main/java/org/onap/aai/web/JerseyConfiguration.java index 29c122ac..a9b8dd27 100644 --- a/aai-resources/src/main/java/org/onap/aai/web/JerseyConfiguration.java +++ b/aai-resources/src/main/java/org/onap/aai/web/JerseyConfiguration.java @@ -31,10 +31,10 @@ import java.util.Comparator; import java.util.Set; import java.util.logging.Logger; -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.container.ContainerResponseFilter; -import javax.ws.rs.ext.ReaderInterceptor; +import jakarta.annotation.Priority; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.ContainerResponseFilter; +import jakarta.ws.rs.ext.ReaderInterceptor; import org.glassfish.jersey.logging.LoggingFeature; import org.glassfish.jersey.server.ResourceConfig; diff --git a/aai-resources/src/main/resources/application.properties b/aai-resources/src/main/resources/application.properties index f0ef368a..19b3e056 100644 --- a/aai-resources/src/main/resources/application.properties +++ b/aai-resources/src/main/resources/application.properties @@ -3,18 +3,18 @@ info.build.artifact=aai-resources info.build.name=resources info.build.description=Resources Microservice info.build.version=1.1.0 +# Logging pattern containing traceId and spanId; no longer provided through Sleuth by default +logging.pattern.level="%5p [${spring.application.name:},%X{traceId:-},%X{spanId:-}]" spring.application.name=aai-resources spring.jersey.type=filter spring.main.allow-bean-definition-overriding=true -spring.sleuth.enabled=false +management.tracing.enabled=false spring.zipkin.baseUrl=http://jaeger-collector.istio-system:9411 spring.sleuth.messaging.jms.enabled = false -spring.sleuth.trace-id128=true -spring.sleuth.sampler.probability=1.0 -spring.sleuth.propagation.type=w3c, b3 -spring.sleuth.supports-join=false +management.tracing.sampling.probability=1.0 +management.tracing.propagation.type=w3c, b3 server.servlet.context-path=/ spring.autoconfigure.exclude=\ @@ -115,7 +115,8 @@ management.server.port=8448 management.endpoints.enabled-by-default=true #To Enable Actuator Endpoint, you can override this in OOM Charts management.endpoints.web.exposure.include=info, health, prometheus -management.metrics.web.server.request.autotime.enabled=false +# This property is deprecated: Should be applied at the ObservationRegistry level. +# management.metrics.web.server.request.autotime.enabled=false management.metrics.distribution.percentiles-histogram[http.server.requests]=true management.metrics.distribution.slo.http.server.requests=20ms, 30ms, 40ms, 50ms, 60ms, 70ms, 80ms, 90ms, 100ms, 500ms, 1000ms, 5000ms, 7000ms management.metrics.tags.group_id=aai diff --git a/aai-resources/src/test/java/org/onap/aai/AAISetup.java b/aai-resources/src/test/java/org/onap/aai/AAISetup.java index d672bc7b..2575480b 100644 --- a/aai-resources/src/test/java/org/onap/aai/AAISetup.java +++ b/aai-resources/src/test/java/org/onap/aai/AAISetup.java @@ -89,7 +89,7 @@ public abstract class AAISetup { InputStream inputStream = getClass().getClassLoader().getResourceAsStream(filename); - String message = String.format("Unable to find the %s in src/test/resources", filename); + String message = "Unable to find the %s in src/test/resources".formatted(filename); assertNotNull(inputStream, message); String resource = IOUtils.toString(inputStream, Charset.defaultCharset()); diff --git a/aai-resources/src/test/java/org/onap/aai/HttpTestUtil.java b/aai-resources/src/test/java/org/onap/aai/HttpTestUtil.java index 676da718..fa5c595b 100644 --- a/aai-resources/src/test/java/org/onap/aai/HttpTestUtil.java +++ b/aai-resources/src/test/java/org/onap/aai/HttpTestUtil.java @@ -30,13 +30,13 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriBuilder; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriBuilder; +import jakarta.ws.rs.core.UriInfo; import org.javatuples.Pair; import org.mockito.Mockito; diff --git a/aai-resources/src/test/java/org/onap/aai/PayloadUtil.java b/aai-resources/src/test/java/org/onap/aai/PayloadUtil.java index 9dd33754..64c32cd9 100644 --- a/aai-resources/src/test/java/org/onap/aai/PayloadUtil.java +++ b/aai-resources/src/test/java/org/onap/aai/PayloadUtil.java @@ -42,7 +42,7 @@ public class PayloadUtil { InputStream inputStream = PayloadUtil.class.getClassLoader().getResourceAsStream("payloads/resource/" + fileName); - String message = String.format("Unable to find the %s in src/test/resources", fileName); + String message = "Unable to find the %s in src/test/resources".formatted(fileName); assertNotNull(inputStream, message); String resource = IOUtils.toString(inputStream, Charset.defaultCharset()); @@ -56,7 +56,7 @@ public class PayloadUtil { InputStream inputStream = PayloadUtil.class.getClassLoader().getResourceAsStream("payloads/templates/" + fileName); - String message = String.format("Unable to find the %s in src/test/resources", fileName); + String message = "Unable to find the %s in src/test/resources".formatted(fileName); assertNotNull(inputStream, message); String resource; @@ -93,7 +93,7 @@ public class PayloadUtil { InputStream inputStream = PayloadUtil.class.getClassLoader().getResourceAsStream("payloads/" + fileName); - String message = String.format("Unable to find the %s in src/test/resources/payloads/", fileName); + String message = "Unable to find the %s in src/test/resources/payloads/".formatted(fileName); assertNotNull(inputStream, message); String resource = IOUtils.toString(inputStream, Charset.defaultCharset()); diff --git a/aai-resources/src/test/java/org/onap/aai/ResourcesTestConfiguration.java b/aai-resources/src/test/java/org/onap/aai/ResourcesTestConfiguration.java index 93b15192..24bba982 100644 --- a/aai-resources/src/test/java/org/onap/aai/ResourcesTestConfiguration.java +++ b/aai-resources/src/test/java/org/onap/aai/ResourcesTestConfiguration.java @@ -28,9 +28,12 @@ import java.security.KeyStore; import javax.net.ssl.SSLContext; -import org.apache.http.client.HttpClient; -import org.apache.http.impl.client.HttpClients; -import org.apache.http.ssl.SSLContextBuilder; +import org.apache.hc.client5.http.classic.HttpClient; +import org.apache.hc.client5.http.impl.classic.HttpClients; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; +import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; +import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy; +import org.apache.hc.core5.ssl.SSLContextBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -76,10 +79,17 @@ public class ResourcesTestConfiguration { } SSLContext sslContext = - sslContextBuilder.loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword).build(); + sslContextBuilder.loadTrustMaterial(ResourceUtils.getFile(trustStore), trustStorePassword).build(); - HttpClient client = HttpClients.custom().setSSLContext(sslContext) - .setSSLHostnameVerifier((s, sslSession) -> true).build(); + PoolingHttpClientConnectionManager connectionManager = + PoolingHttpClientConnectionManagerBuilder.create() + .setTlsSocketStrategy(new DefaultClientTlsStrategy(sslContext, (s, sslSession) -> true)) + .build(); + + HttpClient client = + HttpClients.custom() + .setConnectionManager(connectionManager) + .build(); restTemplate = builder.requestFactory(() -> new HttpComponentsClientHttpRequestFactory(client)).build(); } else { @@ -97,7 +107,7 @@ public class ResourcesTestConfiguration { return true; } - if (clientHttpResponse.getRawStatusCode() % 100 == 5) { + if (clientHttpResponse.getStatusCode().value() % 100 == 5) { logger.debug("Call returned a error " + clientHttpResponse.getStatusText()); return true; } diff --git a/aai-resources/src/test/java/org/onap/aai/config/WebClientConfiguration.java b/aai-resources/src/test/java/org/onap/aai/config/WebClientConfiguration.java index e412dede..f455e684 100644 --- a/aai-resources/src/test/java/org/onap/aai/config/WebClientConfiguration.java +++ b/aai-resources/src/test/java/org/onap/aai/config/WebClientConfiguration.java @@ -7,7 +7,7 @@ import org.onap.aai.setup.SchemaVersions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; diff --git a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestConfiguration.java b/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestConfiguration.java deleted file mode 100644 index 1e47c42d..00000000 --- a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestConfiguration.java +++ /dev/null @@ -1,72 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.aai.it.multitenancy; - -import com.github.dockerjava.api.model.ExposedPort; -import com.github.dockerjava.api.model.HostConfig; -import com.github.dockerjava.api.model.PortBinding; -import com.github.dockerjava.api.model.Ports; - -import dasniko.testcontainers.keycloak.KeycloakContainer; - -import org.keycloak.adapters.springboot.KeycloakSpringBootProperties; -import org.keycloak.admin.client.Keycloak; -import org.keycloak.admin.client.KeycloakBuilder; -import org.keycloak.representations.adapters.config.AdapterConfig; -import org.springframework.boot.test.context.TestConfiguration; -import org.springframework.context.annotation.Bean; - -@TestConfiguration -class KeycloakTestConfiguration { - - @Bean - public AdapterConfig adapterConfig() { - return new KeycloakSpringBootProperties(); - } - - @Bean - KeycloakContainer keycloakContainer(KeycloakTestProperties properties) { - KeycloakContainer keycloak = - new KeycloakContainer("jboss/keycloak:12.0.4").withRealmImportFile(properties.realmJson) - .withCreateContainerCmdModifier(cmd -> cmd.withHostConfig(new HostConfig().withPortBindings( - new PortBinding(Ports.Binding.bindPort(Integer.parseInt(properties.port)), - new ExposedPort(8080))))); - keycloak.start(); - return keycloak; - } - - @Bean - Keycloak keycloakAdminClient(KeycloakContainer keycloak, KeycloakTestProperties properties) { - return KeycloakBuilder.builder().serverUrl(keycloak.getAuthServerUrl()).realm(properties.realm) - .clientId(properties.adminCli).username(keycloak.getAdminUsername()) - .password(keycloak.getAdminPassword()).build(); - } - - @Bean - RoleHandler roleHandler(Keycloak adminClient, KeycloakTestProperties properties) { - return new RoleHandler(adminClient, properties); - } - - @Bean - KeycloakTestProperties properties() { - return new KeycloakTestProperties(); - } -} diff --git a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestProperties.java b/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestProperties.java deleted file mode 100644 index 7f1e34ce..00000000 --- a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/KeycloakTestProperties.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.aai.it.multitenancy; - -import org.springframework.beans.factory.annotation.Value; - -class KeycloakTestProperties { - - @Value("${test.keycloak.realm.json}") - public String realmJson; - - @Value("${keycloak.realm}") - public String realm; - - @Value("${keycloak.resource}") - public String clientId; - - @Value("${test.keycloak.client.secret}") - public String clientSecret; - - @Value("${test.keycloak.admin.cli}") - public String adminCli; - - @Value("${test.keycloak.auth-server-port}") - public String port; - -} diff --git a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/MultiTenancyIT.java b/aai-resources/src/test/java/org/onap/aai/it/multitenancy/MultiTenancyIT.java deleted file mode 100644 index 892b8e3e..00000000 --- a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/MultiTenancyIT.java +++ /dev/null @@ -1,124 +0,0 @@ -/** - * ============LICENSE_START================================================== - * org.onap.aai - * =========================================================================== - * Copyright © 2017-2020 AT&T Intellectual Property. All rights reserved. - * =========================================================================== - * Licensed 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. - * ============LICENSE_END==================================================== - */ - -package org.onap.aai.it.multitenancy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import dasniko.testcontainers.keycloak.KeycloakContainer; -import org.junit.jupiter.api.Test; - -import java.util.Collections; - -import org.keycloak.admin.client.Keycloak; -import org.keycloak.admin.client.KeycloakBuilder; -import org.keycloak.representations.AccessTokenResponse; -import org.onap.aai.PayloadUtil; -import org.onap.aai.rest.AbstractSpringRestTest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Import; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; -import org.springframework.test.context.TestPropertySource; - -@Import(KeycloakTestConfiguration.class) -@TestPropertySource(locations = "classpath:it/application-keycloak-test.properties") -public class MultiTenancyIT extends AbstractSpringRestTest { - - @Autowired - private KeycloakContainer keycloakContainer; - @Autowired - private RoleHandler roleHandler; - @Autowired - private KeycloakTestProperties properties; - - @Test - public void testCreateAndGetPnf() throws Exception { - baseUrl = "http://localhost:" + randomPort; - String endpoint = baseUrl + "/aai/v23/network/pnfs/pnf/pnf-1"; - ResponseEntity responseEntity = null; - - // create pnf with ran (operator) - String username = "ran", password = "ran"; - headers = this.getHeaders(username, password); - httpEntity = new HttpEntity(PayloadUtil.getResourcePayload("pnf.json"), headers); - responseEntity = restTemplate.exchange(endpoint, HttpMethod.PUT, httpEntity, String.class); - assertEquals(HttpStatus.CREATED, responseEntity.getStatusCode()); - - // get pnf with bob (operator_readOnly) - username = "bob"; - password = "bob"; - headers = this.getHeaders(username, password); - httpEntity = new HttpEntity("", headers); - responseEntity = restTemplate.exchange(endpoint, HttpMethod.GET, httpEntity, String.class); - assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); - - // get pnf with ted (selector) - username = "ted"; - password = "ted"; - headers = this.getHeaders(username, password); - httpEntity = new HttpEntity("", headers); - responseEntity = restTemplate.exchange(endpoint, HttpMethod.GET, httpEntity, String.class); - assertEquals(HttpStatus.FORBIDDEN, responseEntity.getStatusCode()); - - // add role to ted and try to get pnf again - roleHandler.addToUser(RoleHandler.OPERATOR_READ_ONLY, username); - headers = this.getHeaders(username, password); - httpEntity = new HttpEntity("", headers); - responseEntity = restTemplate.exchange(endpoint, HttpMethod.GET, httpEntity, String.class); - assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); - - // get pnf with ran - username = "ran"; - password = "ran"; - headers = this.getHeaders(username, password); - httpEntity = new HttpEntity("", headers); - responseEntity = restTemplate.exchange(endpoint, HttpMethod.GET, httpEntity, String.class); - assertEquals(HttpStatus.OK, responseEntity.getStatusCode()); - } - - private HttpHeaders getHeaders(String username, String password) { - HttpHeaders headers = new HttpHeaders(); - - headers.setContentType(MediaType.APPLICATION_JSON); - headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON)); - headers.add("Real-Time", "true"); - headers.add("X-FromAppId", "JUNIT"); - headers.add("X-TransactionId", "JUNIT"); - headers.add("Authorization", "Bearer " + getStringToken(username, password)); - - return headers; - } - - private String getStringToken(String username, String password) { - Keycloak keycloakClient = KeycloakBuilder.builder().serverUrl(keycloakContainer.getAuthServerUrl()) - .realm(properties.realm).clientId(properties.clientId).clientSecret(properties.clientSecret) - .username(username).password(password).build(); - - AccessTokenResponse tokenResponse = keycloakClient.tokenManager().getAccessToken(); - assertNotNull(tokenResponse); - return tokenResponse.getToken(); - } -} diff --git a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/RoleHandler.java b/aai-resources/src/test/java/org/onap/aai/it/multitenancy/RoleHandler.java deleted file mode 100644 index c9c1fd23..00000000 --- a/aai-resources/src/test/java/org/onap/aai/it/multitenancy/RoleHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -/** - * ============LICENSE_START======================================================= - * org.onap.aai - * ================================================================================ - * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.aai.it.multitenancy; - -import java.util.Collections; - -import org.keycloak.admin.client.Keycloak; -import org.keycloak.admin.client.resource.RealmResource; - -class RoleHandler { - - /** - * Following roles should be the same as given roles in multi-tenancy-realm json file - */ - final static String OPERATOR = "operator"; - final static String OPERATOR_READ_ONLY = "operator_readOnly"; - private final Keycloak adminClient; - private final KeycloakTestProperties properties; - - RoleHandler(Keycloak adminClient, KeycloakTestProperties properties) { - this.adminClient = adminClient; - this.properties = properties; - } - - void addToUser(String role, String username) { - RealmResource realm = adminClient.realm(properties.realm); - realm.users().get(username).roles().realmLevel() - .add(Collections.singletonList(realm.roles().get(role).toRepresentation())); - } - - void removeFromUser(String role, String username) { - RealmResource realm = adminClient.realm(properties.realm); - realm.users().get(username).roles().realmLevel() - .remove(Collections.singletonList(realm.roles().get(role).toRepresentation())); - } -} diff --git a/aai-resources/src/test/java/org/onap/aai/it/performance/K6ReadTest.java b/aai-resources/src/test/java/org/onap/aai/it/performance/K6ReadTest.java index 6d7a3934..37b39e9f 100644 --- a/aai-resources/src/test/java/org/onap/aai/it/performance/K6ReadTest.java +++ b/aai-resources/src/test/java/org/onap/aai/it/performance/K6ReadTest.java @@ -41,7 +41,7 @@ import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfigurati import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.testcontainers.containers.output.WaitingConsumer; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.k6.K6Container; diff --git a/aai-resources/src/test/java/org/onap/aai/it/performance/K6WriteTest.java b/aai-resources/src/test/java/org/onap/aai/it/performance/K6WriteTest.java index b4a495cc..c9bb4019 100644 --- a/aai-resources/src/test/java/org/onap/aai/it/performance/K6WriteTest.java +++ b/aai-resources/src/test/java/org/onap/aai/it/performance/K6WriteTest.java @@ -32,7 +32,6 @@ import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.onap.aai.ResourcesApp; import org.onap.aai.db.props.AAIProperties; import org.onap.aai.dbmap.AAIGraph; import org.slf4j.Logger; @@ -42,7 +41,7 @@ import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfigurati import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.testcontainers.containers.output.WaitingConsumer; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.k6.K6Container; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/AbstractSpringRestTest.java b/aai-resources/src/test/java/org/onap/aai/rest/AbstractSpringRestTest.java index adfa433a..7fdd3e01 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/AbstractSpringRestTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/AbstractSpringRestTest.java @@ -43,7 +43,7 @@ import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration; import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.context.annotation.Import; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/BulkAddConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/BulkAddConsumerTest.java index 52a62d80..719b172f 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/BulkAddConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/BulkAddConsumerTest.java @@ -25,7 +25,7 @@ import static org.mockito.Mockito.when; import java.io.IOException; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessConsumerTest.java index 4bab61db..2de138ed 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessConsumerTest.java @@ -26,7 +26,7 @@ import static org.mockito.Mockito.when; import java.io.IOException; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import org.apache.commons.lang3.StringUtils; import org.json.JSONException; @@ -126,8 +126,8 @@ public class BulkProcessConsumerTest extends BulkProcessorTestAbstraction { String hostname = "pserver-9876543210-77-jenkins"; String physicalLocationId = "complex-987654321-77-jenkins"; - String pserverUri = String.format("cloud-infrastructure/pservers/pserver/%s", hostname); - String complexUri = String.format("cloud-infrastructure/complexes/complex/%s", physicalLocationId); + String pserverUri = "cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String complexUri = "cloud-infrastructure/complexes/complex/%s".formatted(physicalLocationId); doSetupResource(pserverUri, pserverData); doSetupResource(complexUri, complexData); @@ -135,7 +135,7 @@ public class BulkProcessConsumerTest extends BulkProcessorTestAbstraction { String complexToPserverRelationshipData = getPayload("payloads/relationship/pserver-complex-relationship-for-bulk.json"); String complexToPserverRelationshipUri = - String.format("cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship", hostname); + "cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship".formatted(hostname); Response response = resourcesController.updateRelationship(complexToPserverRelationshipData, schemaVersions.getDefaultVersion().toString(), complexToPserverRelationshipUri, httpHeaders, uriInfo, diff --git a/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessorTestAbstraction.java b/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessorTestAbstraction.java index f734360e..68b941bf 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessorTestAbstraction.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/BulkProcessorTestAbstraction.java @@ -30,12 +30,12 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.jupiter.api.BeforeEach; import org.mockito.Mockito; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/ConfigurationTest.java b/aai-resources/src/test/java/org/onap/aai/rest/ConfigurationTest.java index 15c03cf8..9c7ec5ec 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/ConfigurationTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/ConfigurationTest.java @@ -43,7 +43,7 @@ import org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfigurati import org.springframework.boot.autoconfigure.data.cassandra.CassandraDataAutoConfiguration; import org.springframework.boot.test.autoconfigure.actuate.metrics.AutoConfigureMetrics; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.web.server.LocalServerPort; +import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.context.annotation.Import; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/ExampleConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/ExampleConsumerTest.java index e3b923fb..a30ead8e 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/ExampleConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/ExampleConsumerTest.java @@ -31,12 +31,12 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/ExceptionHandlerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/ExceptionHandlerTest.java index 21baedc8..417ada87 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/ExceptionHandlerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/ExceptionHandlerTest.java @@ -38,12 +38,12 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.WebApplicationException; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.Response; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.Response; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -66,7 +66,7 @@ public class ExceptionHandlerTest extends AAISetup { private HttpServletRequest request; @InjectMocks - private ExceptionHandler handler = new ExceptionHandler(); + private ExceptionHandler handler; @BeforeEach public void setup() { diff --git a/aai-resources/src/test/java/org/onap/aai/rest/URLFromVertexIdConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/URLFromVertexIdConsumerTest.java index 37304fe9..52a04da0 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/URLFromVertexIdConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/URLFromVertexIdConsumerTest.java @@ -33,12 +33,12 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.json.JSONException; import org.junit.jupiter.api.BeforeEach; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/VertexIdConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/VertexIdConsumerTest.java index 137ffc6a..9381d8fc 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/VertexIdConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/VertexIdConsumerTest.java @@ -33,12 +33,12 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.json.JSONException; import org.junit.jupiter.api.BeforeEach; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java index 6d652ab8..136b3495 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/bulk/BulkSingleTransactionConsumerTest.java @@ -33,8 +33,8 @@ import java.lang.reflect.Method; import java.util.Iterator; import java.util.Optional; -import javax.ws.rs.HttpMethod; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.HttpMethod; +import jakarta.ws.rs.core.Response; import org.apache.tinkerpop.gremlin.structure.Property; import org.apache.tinkerpop.gremlin.structure.Vertex; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/resources/ResourcesControllerTest.java b/aai-resources/src/test/java/org/onap/aai/rest/resources/ResourcesControllerTest.java index da7c0647..3db4b592 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/resources/ResourcesControllerTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/resources/ResourcesControllerTest.java @@ -41,12 +41,12 @@ import java.util.List; import java.util.Set; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.apache.commons.io.IOUtils; import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource; @@ -62,6 +62,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; import org.junit.jupiter.params.provider.EnumSource; +import org.junit.jupiter.params.provider.ValueSource; import org.mockito.Mockito; import org.onap.aai.config.WebClientConfiguration; import org.onap.aai.db.props.AAIProperties; @@ -84,6 +85,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.context.annotation.Import; import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext.ClassMode; @@ -276,15 +278,15 @@ public class ResourcesControllerTest { String hostname = "590a8943-1200-43b3-825b-75dde6b8f44a"; String physicalLocationId = "e13d4587-19ad-4bf5-80f5-c021efb5b61c"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String cloudRegionUri = String.format("/cloud-infrastructure/complexes/complex/%s", physicalLocationId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String cloudRegionUri = "/cloud-infrastructure/complexes/complex/%s".formatted(physicalLocationId); doSetupResource(pserverUri, pserverData); doSetupResource(cloudRegionUri, complexData); String cloudToPserverRelationshipData = getRelationshipPayload("pserver-complex-relationship"); String cloudToPserverRelationshipUri = - String.format("/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship", hostname); + "/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship".formatted(hostname); webClient.put() .uri(cloudToPserverRelationshipUri) @@ -304,21 +306,21 @@ public class ResourcesControllerTest { public void testPutPassWithEmptyData() throws JSONException { String payload = "{}"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", UUID.randomUUID().toString()); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(UUID.randomUUID().toString()); doSetupResource(pserverUri, payload); payload = "{}"; - pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", UUID.randomUUID().toString()); + pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(UUID.randomUUID().toString()); doSetupResource(pserverUri, payload); } @ParameterizedTest - @EnumSource(value = HttpMethod.class, names = {"GET", "PUT", "DELETE"}) - public void thatUnknownPathReturnsBadRequest(HttpMethod method) throws JSONException { + @ValueSource(strings = {"GET", "PUT", "DELETE"}) + public void thatUnknownPathReturnsBadRequest(String method) throws JSONException { String uri = "/fake-infrastructure/pservers/pserver/fajsidj"; AAIErrorResponse errorResponse = webClient - .method(method) + .method(HttpMethod.valueOf(method)) .uri(uri) .bodyValue("{}") .exchange() @@ -496,16 +498,16 @@ public class ResourcesControllerTest { public String getResourcePayload(String resourceName) throws IOException { String rawPayload = IOUtils.toString(this.getClass().getResourceAsStream("/payloads/resource/" + resourceName + ".json"), StandardCharsets.UTF_8); - return String.format(rawPayload, defaultSchemaVersion); + return rawPayload.formatted(defaultSchemaVersion); } public String getRelationshipPayload(String relationshipName) throws IOException { String rawPayload = IOUtils.toString(this.getClass().getResourceAsStream("/payloads/relationship/" + relationshipName + ".json"), StandardCharsets.UTF_8); - return String.format(rawPayload, defaultSchemaVersion); + return rawPayload.formatted(defaultSchemaVersion); } public String getUri(String hostname) { - return String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + return "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); } public String getGetAllPserversURI() { @@ -535,15 +537,15 @@ public class ResourcesControllerTest { String hostname = "590a8943-1200-43b3-825b-75dde6b8f44b"; String physicalLocationId = "e13d4587-19ad-4bf5-80f5-c021efb5b61d"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String cloudRegionUri = String.format("/cloud-infrastructure/complexes/complex/%s", physicalLocationId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String cloudRegionUri = "/cloud-infrastructure/complexes/complex/%s".formatted(physicalLocationId); doSetupResource(pserverUri, pserverData); doSetupResource(cloudRegionUri, complexData); String cloudToPserverRelationshipData = getRelationshipPayload("pserver-complex-relationship2"); String cloudToPserverRelationshipUri = - String.format("/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship", hostname); + "/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship".formatted(hostname); webClient.put() .uri(cloudToPserverRelationshipUri) @@ -552,7 +554,7 @@ public class ResourcesControllerTest { .expectStatus() .isOk(); - String getRelationshipUri = String.format("/cloud-infrastructure/pservers/pserver/%s/relationship-list", hostname); + String getRelationshipUri = "/cloud-infrastructure/pservers/pserver/%s/relationship-list".formatted(hostname); String responseBody = webClient.get() .uri(uriBuilder -> uriBuilder @@ -578,15 +580,15 @@ public class ResourcesControllerTest { String hostname = "590a8943-1200-43b3-825b-75dde6b8f44c"; String physicalLocationId = "e13d4587-19ad-4bf5-80f5-c021efb5b61e"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String cloudRegionUri = String.format("/cloud-infrastructure/complexes/complex/%s", physicalLocationId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String cloudRegionUri = "/cloud-infrastructure/complexes/complex/%s".formatted(physicalLocationId); doSetupResource(pserverUri, pserverData); doSetupResource(cloudRegionUri, complexData); String cloudToPserverRelationshipData = getRelationshipPayload("pserver-complex-relationship3"); String cloudToPserverRelationshipUri = - String.format("/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship", hostname); + "/cloud-infrastructure/pservers/pserver/%s/relationship-list/relationship".formatted(hostname); webClient.put() .uri(cloudToPserverRelationshipUri) @@ -595,7 +597,7 @@ public class ResourcesControllerTest { .expectStatus() .isOk(); - String getRelationshipUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + String getRelationshipUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); String responseBody = webClient.get() .uri(uriBuilder -> uriBuilder @@ -651,14 +653,14 @@ public class ResourcesControllerTest { String hostname = "590a8943-1200-43b3-825b-75dde6b8f44d"; String physicalLocationId = "e13d4587-19ad-4bf5-80f5-c021efb5b61f"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String cloudRegionUri = String.format("/cloud-infrastructure/complexes/complex/%s", physicalLocationId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String cloudRegionUri = "/cloud-infrastructure/complexes/complex/%s".formatted(physicalLocationId); doSetupResource(pserverUri, pserverData); doSetupResource(cloudRegionUri, complexData); String getRelationshipMockRequestUri = - String.format("/cloud-infrastructure/pservers/pserver/%s/relationship-list", hostname); + "/cloud-infrastructure/pservers/pserver/%s/relationship-list".formatted(hostname); webClient.get() .uri(getRelationshipMockRequestUri) .exchange() @@ -676,18 +678,16 @@ public class ResourcesControllerTest { String tenant = "tenant01"; String vserver = "vserver01"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true", hostname); - String vserverUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true", cloudRegionId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true".formatted(hostname); + String vserverUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true".formatted(cloudRegionId); // PUT the resources putResourceWithQueryParam(pserverUri, pserverData); putResourceWithQueryParam(vserverUri, vserverData); String pserverMockRequestUri = - String.format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true", hostname); - String vserverMockRequestUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true", + "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true".formatted(hostname); + String vserverMockRequestUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true".formatted( cloudRegionId, tenant, vserver); // === GET - related-to-property should not exist === @@ -702,13 +702,12 @@ public class ResourcesControllerTest { // === Clean up (DELETE) === // vserver - String deleteUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String deleteUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); deleteServerObject(vserverMockRequestUri, deleteUri, "vserver"); // pserver - deleteUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + deleteUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); deleteServerObject(pserverMockRequestUri, deleteUri, "pserver"); } @@ -722,16 +721,15 @@ public class ResourcesControllerTest { String tenant = "tenant02"; String vserver = "vserver02"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String vserverUri = String.format("/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s", cloudRegionId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String vserverUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s".formatted(cloudRegionId); // PUT the resources doSetupResource(pserverUri, pserverData); doSetupResource(vserverUri, vserverData); - String pserverMockRequestUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); - String vserverMockRequestUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String pserverMockRequestUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); + String vserverMockRequestUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); // === GET - related-to-property should not exist === @@ -746,13 +744,12 @@ public class ResourcesControllerTest { // === Clean up (DELETE) === // vserver - String deleteUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String deleteUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); deleteServerObject(vserverMockRequestUri, deleteUri, "vserver"); // pserver - deleteUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + deleteUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); deleteServerObject(pserverMockRequestUri, deleteUri, "pserver"); } @@ -766,20 +763,18 @@ public class ResourcesControllerTest { String tenant = "tenant03"; String vserver = "vserver03"; - String pserverUri = String - .format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource", hostname); - String vserverUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true&format=resource", + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource" + .formatted(hostname); + String vserverUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true&format=resource".formatted( cloudRegionId); // PUT the resources putResourceWithQueryParam(pserverUri, pserverData); putResourceWithQueryParam(vserverUri, vserverData); - String pserverMockRequestUri = String - .format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource", hostname); - String vserverMockRequestUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true&format=resource", + String pserverMockRequestUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource" + .formatted(hostname); + String vserverMockRequestUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true&format=resource".formatted( cloudRegionId, tenant, vserver); // === GET - related-to-property should not exist === @@ -794,16 +789,14 @@ public class ResourcesControllerTest { // === Clean up (DELETE) === // vserver - String deleteUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String deleteUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); - String vserverMockRequestUriNoFormat = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String vserverMockRequestUriNoFormat = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); deleteServerObject(vserverMockRequestUriNoFormat, deleteUri, "vserver"); // pserver - deleteUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + deleteUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); deleteServerObject(pserverMockRequestUri, deleteUri, "pserver"); } @@ -817,20 +810,16 @@ public class ResourcesControllerTest { String tenant = "tenant04"; String vserver = "vserver04"; - String pserverUri = String.format( - "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource_and_url", hostname); - String vserverUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true&format=resource_and_url", + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource_and_url".formatted(hostname); + String vserverUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true&format=resource_and_url".formatted( cloudRegionId); // PUT the resources putResourceWithQueryParam(pserverUri, pserverData); putResourceWithQueryParam(vserverUri, vserverData); - String pserverMockRequestUri = String.format( - "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource_and_url", hostname); - String vserverMockRequestUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true&format=resource_and_url", + String pserverMockRequestUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true&format=resource_and_url".formatted(hostname); + String vserverMockRequestUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s?skip-related-to=true&format=resource_and_url".formatted( cloudRegionId, tenant, vserver); // === GET - related-to-property should not exist === @@ -845,16 +834,14 @@ public class ResourcesControllerTest { // === Clean up (DELETE) === // vserver - String deleteUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String deleteUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); - String vserverMockRequestUriNoFormat = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String vserverMockRequestUriNoFormat = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); deleteServerObject(vserverMockRequestUriNoFormat, deleteUri, "vserver"); // pserver - deleteUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + deleteUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); deleteServerObject(pserverMockRequestUri, deleteUri, "pserver"); } @@ -868,18 +855,16 @@ public class ResourcesControllerTest { String tenant = "tenant05"; String vserver = "vserver05"; - String pserverUri = String.format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true", hostname); - String vserverUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true", cloudRegionId); + String pserverUri = "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true".formatted(hostname); + String vserverUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s?skip-related-to=true".formatted(cloudRegionId); // PUT the resources putResourceWithQueryParam(pserverUri, pserverData); putResourceWithQueryParam(vserverUri, vserverData); String pserverMockRequestUri = - String.format("/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true", hostname); - String vserverMockRequestUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers?vserver-selflink=somelink05&skip-related-to=true", + "/cloud-infrastructure/pservers/pserver/%s?skip-related-to=true".formatted(hostname); + String vserverMockRequestUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers?vserver-selflink=somelink05&skip-related-to=true".formatted( cloudRegionId, tenant, vserver); // === GET - related-to-property should not exist === @@ -894,16 +879,14 @@ public class ResourcesControllerTest { // === Clean up (DELETE) === // vserver - String deleteUri = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String deleteUri = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); - String vserverMockRequestUriNoFormat = String.format( - "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s", + String vserverMockRequestUriNoFormat = "/cloud-infrastructure/cloud-regions/cloud-region/test-aic/%s/tenants/tenant/%s/vservers/vserver/%s".formatted( cloudRegionId, tenant, vserver); deleteServerObject(vserverMockRequestUriNoFormat, deleteUri, "vserver"); // pserver - deleteUri = String.format("/cloud-infrastructure/pservers/pserver/%s", hostname); + deleteUri = "/cloud-infrastructure/pservers/pserver/%s".formatted(hostname); deleteServerObject(pserverMockRequestUri, deleteUri, "pserver"); } diff --git a/aai-resources/src/test/java/org/onap/aai/rest/util/EchoResponseTest.java b/aai-resources/src/test/java/org/onap/aai/rest/util/EchoResponseTest.java index 030e870a..21595160 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/util/EchoResponseTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/util/EchoResponseTest.java @@ -33,12 +33,12 @@ import java.util.Collections; import java.util.List; import java.util.UUID; -import javax.ws.rs.core.HttpHeaders; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.HttpHeaders; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.UriInfo; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/aai-resources/src/test/java/org/onap/aai/rest/util/ValidateEncodingTest.java b/aai-resources/src/test/java/org/onap/aai/rest/util/ValidateEncodingTest.java index 4c2a0c9a..b2d459cc 100644 --- a/aai-resources/src/test/java/org/onap/aai/rest/util/ValidateEncodingTest.java +++ b/aai-resources/src/test/java/org/onap/aai/rest/util/ValidateEncodingTest.java @@ -24,9 +24,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.UnsupportedEncodingException; -import javax.ws.rs.core.MultivaluedHashMap; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; +import jakarta.ws.rs.core.MultivaluedHashMap; +import jakarta.ws.rs.core.MultivaluedMap; +import jakarta.ws.rs.core.UriInfo; import org.junit.jupiter.api.Test; import org.mockito.Mockito; diff --git a/aai-resources/src/test/resources/application-test.properties b/aai-resources/src/test/resources/application-test.properties index 2118d045..f3c778ea 100644 --- a/aai-resources/src/test/resources/application-test.properties +++ b/aai-resources/src/test/resources/application-test.properties @@ -11,7 +11,7 @@ server.servlet.context-path=/ spring.jersey.application-path=${schema.uri.base.path} -spring.sleuth.enabled=false +management.tracing.enabled=false spring.autoconfigure.exclude=\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ @@ -77,7 +77,8 @@ management.endpoint.metrics.enabled=true management.endpoint.prometheus.enabled=true management.endpoints.enabled-by-default=true management.endpoints.web.exposure.include=info, health, prometheus -management.metrics.web.server.request.autotime.enabled=false +# This property is deprecated: Should be applied at the ObservationRegistry level. +# management.metrics.web.server.request.autotime.enabled=false scrape.uri.metrics=true aai.notifications.enabled=false diff --git a/pom.xml b/pom.xml index c1d916a8..361f7043 100644 --- a/pom.xml +++ b/pom.xml @@ -26,18 +26,18 @@ org.onap.aai.aai-common aai-parent - 1.15.4 + 1.16.0-SNAPSHOT org.onap.aai.resources resources - 1.15.4-SNAPSHOT + 1.16.0-SNAPSHOT aai-resources pom aai-resources - 11 + 17 ${project.version} - 1.15.4 + 1.16.0-SNAPSHOT 1.12.7 -- 2.16.6