From 8bee430babc4543670aa7064e3eb3d9c848b042c Mon Sep 17 00:00:00 2001 From: Antonio Tarricone <110115827+antoniotarricone@users.noreply.github.com> Date: Wed, 7 Aug 2024 14:34:34 +0200 Subject: [PATCH] feat: New mil-azure-services with Workload ID support and automatic selection. (#128) --- dep-sha256.json | 108 +++++++++--------- pom.xml | 19 ++- .../auth/resource/TokenInfoResourceTest.java | 14 +-- src/test/resources/application.properties | 8 ++ 4 files changed, 82 insertions(+), 67 deletions(-) create mode 100644 src/test/resources/application.properties diff --git a/dep-sha256.json b/dep-sha256.json index de2ad069..7a044f47 100644 --- a/dep-sha256.json +++ b/dep-sha256.json @@ -602,34 +602,6 @@ "version": "1.3", "sha256": "aczARIfod3nUlwqlDGc8w0qd8IDBwOjY6rLotG-CXPQ=" }, - { - "id": "io.quarkus:quarkus-rest-client-jackson:jar:3.13.0", - "artifactId": "quarkus-rest-client-jackson", - "groupId": "io.quarkus", - "version": "3.13.0", - "sha256": "zxHuQ-UuHRT0t1wGZd-9u5RXZaqHkt2H3odP4shGerI=" - }, - { - "id": "io.quarkus.resteasy.reactive:resteasy-reactive-jackson:jar:3.13.0", - "artifactId": "resteasy-reactive-jackson", - "groupId": "io.quarkus.resteasy.reactive", - "version": "3.13.0", - "sha256": "P3N0HThUiFZvIZHdNB_tPGjkHnigfpnwGffuPp7yc44=" - }, - { - "id": "com.fasterxml.jackson.core:jackson-databind:jar:2.17.2", - "artifactId": "jackson-databind", - "groupId": "com.fasterxml.jackson.core", - "version": "2.17.2", - "sha256": "wEmT8zwPhFNCZTeE8U84Nz0AUoDmNZ21-AhwHPrnPAw=" - }, - { - "id": "com.fasterxml.jackson.core:jackson-annotations:jar:2.17.2", - "artifactId": "jackson-annotations", - "groupId": "com.fasterxml.jackson.core", - "version": "2.17.2", - "sha256": "hzpgbiNQeWn5u76pOdXhknSoh3XqWhabp-LXlapRVuE=" - }, { "id": "io.quarkus:quarkus-rest-client:jar:3.13.0", "artifactId": "quarkus-rest-client", @@ -672,6 +644,20 @@ "version": "3.13.0", "sha256": "45SaixKYt0ago1tvjBZ-2_lkCjQcsLSRfUQqu9SHhNc=" }, + { + "id": "io.smallrye:jandex:jar:3.2.0", + "artifactId": "jandex", + "groupId": "io.smallrye", + "version": "3.2.0", + "sha256": "baPpzo0MCkM_PnzmEKPGasywDHH-5nqg_z5ahBOVrBU=" + }, + { + "id": "io.quarkus:quarkus-tls-registry:jar:3.13.0", + "artifactId": "quarkus-tls-registry", + "groupId": "io.quarkus", + "version": "3.13.0", + "sha256": "inlDAA2c5c-aF3gC8XZwYG2ZVrxuS_SaYZD8AaSzRl0=" + }, { "id": "io.smallrye.stork:stork-api:jar:2.6.0", "artifactId": "stork-api", @@ -693,6 +679,34 @@ "version": "3.0.1", "sha256": "K3Fpi5XIksxlkjX0_-ZjteLxFRzrTncmiyP_KwxjIcs=" }, + { + "id": "io.quarkus:quarkus-rest-client-jackson:jar:3.13.0", + "artifactId": "quarkus-rest-client-jackson", + "groupId": "io.quarkus", + "version": "3.13.0", + "sha256": "zxHuQ-UuHRT0t1wGZd-9u5RXZaqHkt2H3odP4shGerI=" + }, + { + "id": "io.quarkus.resteasy.reactive:resteasy-reactive-jackson:jar:3.13.0", + "artifactId": "resteasy-reactive-jackson", + "groupId": "io.quarkus.resteasy.reactive", + "version": "3.13.0", + "sha256": "P3N0HThUiFZvIZHdNB_tPGjkHnigfpnwGffuPp7yc44=" + }, + { + "id": "com.fasterxml.jackson.core:jackson-databind:jar:2.17.2", + "artifactId": "jackson-databind", + "groupId": "com.fasterxml.jackson.core", + "version": "2.17.2", + "sha256": "wEmT8zwPhFNCZTeE8U84Nz0AUoDmNZ21-AhwHPrnPAw=" + }, + { + "id": "com.fasterxml.jackson.core:jackson-annotations:jar:2.17.2", + "artifactId": "jackson-annotations", + "groupId": "com.fasterxml.jackson.core", + "version": "2.17.2", + "sha256": "hzpgbiNQeWn5u76pOdXhknSoh3XqWhabp-LXlapRVuE=" + }, { "id": "io.quarkus:quarkus-cache:jar:3.13.0", "artifactId": "quarkus-cache", @@ -911,18 +925,18 @@ "sha256": "uHd2HNlLQK-VV9OP_9H7bvPHtOAZUdyApSNdfhrXcHc=" }, { - "id": "it.pagopa.swclient.mil:common:jar:2.3.0", + "id": "it.pagopa.swclient.mil:common:jar:2.6.0", "artifactId": "common", "groupId": "it.pagopa.swclient.mil", - "version": "2.3.0", - "sha256": "GvpPTiLMCTL0YX_AM3NqP0aFd1R4WNnz3M1MKsyrlec=" + "version": "2.6.0", + "sha256": "NKb3hLFpbfEeB1IN5I-DHAgvltdOkG9aaw7CzSM9UAk=" }, { - "id": "it.pagopa.swclient.mil:azure-services:jar:5.3.0", + "id": "it.pagopa.swclient.mil:azure-services:jar:5.4.0", "artifactId": "azure-services", "groupId": "it.pagopa.swclient.mil", - "version": "5.3.0", - "sha256": "Va6M1UY7XOE9lsC7xJHTK5CiIWK284bEMk6wdSS_xJc=" + "version": "5.4.0", + "sha256": "4k3M69uXxlHHRZGAYkyjlPGbSpvm5z5Wl41m55B2B8w=" }, { "id": "com.nimbusds:nimbus-jose-jwt:jar:9.40", @@ -1617,13 +1631,6 @@ "version": "3.13.0", "sha256": "N49Ux3jkGlyB2wzgBCldQu01OCLIdM_IDJBSxyZYW-0=" }, - { - "id": "io.smallrye:jandex:jar:3.2.0", - "artifactId": "jandex", - "groupId": "io.smallrye", - "version": "3.2.0", - "sha256": "baPpzo0MCkM_PnzmEKPGasywDHH-5nqg_z5ahBOVrBU=" - }, { "id": "commons-io:commons-io:jar:2.16.1", "artifactId": "commons-io", @@ -2044,13 +2051,6 @@ "version": "3.13.0", "sha256": "dkxueDYzvmx5_pFqgEXtaXL1_WJNsHtPx-LKUz1m83A=" }, - { - "id": "io.quarkus:quarkus-tls-registry:jar:3.13.0", - "artifactId": "quarkus-tls-registry", - "groupId": "io.quarkus", - "version": "3.13.0", - "sha256": "inlDAA2c5c-aF3gC8XZwYG2ZVrxuS_SaYZD8AaSzRl0=" - }, { "id": "io.quarkus:quarkus-security-runtime-spi:jar:3.13.0", "artifactId": "quarkus-security-runtime-spi", @@ -2346,18 +2346,18 @@ "sha256": "T7aksu03RL2VxJX-pC2ca41LbCbdViN21cYuwo1dtk8=" }, { - "id": "io.quarkiverse.opentelemetry.exporter:quarkus-opentelemetry-exporter-azure:jar:3.8.3.0", + "id": "io.quarkiverse.opentelemetry.exporter:quarkus-opentelemetry-exporter-azure:jar:3.8.3.1", "artifactId": "quarkus-opentelemetry-exporter-azure", "groupId": "io.quarkiverse.opentelemetry.exporter", - "version": "3.8.3.0", - "sha256": "zXg8PGdYXA0HWGdhdtfw-dOGV90P3wsjJnEeJGyxJ-s=" + "version": "3.8.3.1", + "sha256": "yrfpdJwkaEvwztQpcKW7IAhLafbRzcp_bvaiKFNtZqg=" }, { - "id": "io.quarkiverse.opentelemetry.exporter:quarkus-opentelemetry-exporter-common:jar:3.8.3.0", + "id": "io.quarkiverse.opentelemetry.exporter:quarkus-opentelemetry-exporter-common:jar:3.8.3.1", "artifactId": "quarkus-opentelemetry-exporter-common", "groupId": "io.quarkiverse.opentelemetry.exporter", - "version": "3.8.3.0", - "sha256": "kYITtdlW51ntA3XFfHMGovcWnlJ0BJ3r1YcPlSg1A2M=" + "version": "3.8.3.1", + "sha256": "nCVMG180ikCbP-Fj88f5D_52Hd6a7tBWLSI6O2qkuEA=" }, { "id": "com.azure:azure-monitor-opentelemetry-exporter:jar:1.0.0-beta.21", diff --git a/pom.xml b/pom.xml index 8b57be50..f328f306 100644 --- a/pom.xml +++ b/pom.xml @@ -40,10 +40,10 @@ io.quarkus.platform 3.13.0 - 2.3.0 - 5.3.0 + 2.6.0 + 5.4.0 1.18.32 - 3.8.3.0 + 3.8.3.1 3.25.3 2.73.6 @@ -53,7 +53,11 @@ true 300 target/jacoco-report/jacoco.xml - + e1,e2 + java:S116 + src/test/java/**/*.java + java:S117 + src/test/java/**/*.java true @@ -86,6 +90,10 @@ io.quarkus quarkus-arc + + io.quarkus + quarkus-rest-client + io.quarkus quarkus-rest-client-jackson @@ -215,6 +223,7 @@ build generate-code generate-code-tests + native-image-agent @@ -336,7 +345,7 @@ false - native + true diff --git a/src/test/java/it/pagopa/swclient/mil/auth/resource/TokenInfoResourceTest.java b/src/test/java/it/pagopa/swclient/mil/auth/resource/TokenInfoResourceTest.java index 27ebaa60..5e984022 100644 --- a/src/test/java/it/pagopa/swclient/mil/auth/resource/TokenInfoResourceTest.java +++ b/src/test/java/it/pagopa/swclient/mil/auth/resource/TokenInfoResourceTest.java @@ -14,8 +14,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInfo; -import com.azure.core.http.ContentType; - import io.quarkus.test.InjectMock; import io.quarkus.test.common.http.TestHTTPEndpoint; import io.quarkus.test.junit.QuarkusTest; @@ -71,7 +69,7 @@ void given_tokenWithEncFiscalCode_when_allIsOk_then_getDecryptedFiscalCode() { * */ TokenInfoResponse actual = given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000000") .body(new TokenInfoRequest("eyJraWQiOiJhdXRoMDcwOTY0M2Y0OTM5NDUyOWI5MmMxOWE2OGM4ZTE4NGEvNjU4MWM3MDRkZWRhNDk3OTk0M2MzYjM0NDY4ZGY3YzIiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJhdWQiOiJtaWwucGFnb3BhLml0IiwiY2xpZW50SWQiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJtZXJjaGFudElkIjoiMjg0MDVmSGZrNzN4ODhEIiwiZmlzY2FsQ29kZSI6eyJraWQiOiJraWQiLCJhbGciOiJSU0EtT0FFUC0yNTYiLCJ2YWx1ZSI6IkFBRUNBdz09In0sImNoYW5uZWwiOiJQT1MiLCJpc3MiOiJodHRwOi8vZHVtbXkiLCJncm91cHMiOlsiTm90aWNlUGF5ZXIiLCJTbGF2ZVBvcyJdLCJ0ZXJtaW5hbElkIjoiMTIzNDU2NzgiLCJleHAiOjE3MTY4MDQ3MzksImFjcXVpcmVySWQiOiI0NTg1NjI1IiwiaWF0IjoxNzE2ODA0NDM5fQ.expected_signature")) .when() @@ -106,7 +104,7 @@ void given_tokenWOEncFiscalCode_when_allIsOk_then_getEmptyResponse() { * */ given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000001") .body(new TokenInfoRequest("eyJraWQiOiJhdXRoMDcwOTY0M2Y0OTM5NDUyOWI5MmMxOWE2OGM4ZTE4NGEvNjU4MWM3MDRkZWRhNDk3OTk0M2MzYjM0NDY4ZGY3YzIiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJhdWQiOiJtaWwucGFnb3BhLml0IiwiY2xpZW50SWQiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJtZXJjaGFudElkIjoiMjg0MDVmSGZrNzN4ODhEIiwiY2hhbm5lbCI6IlBPUyIsImlzcyI6Imh0dHA6Ly9kdW1teSIsImdyb3VwcyI6WyJOb3RpY2VQYXllciIsIlNsYXZlUG9zIl0sInRlcm1pbmFsSWQiOiIxMjM0NTY3OCIsImV4cCI6MTcxNjg5MzcxOSwiYWNxdWlyZXJJZCI6IjQ1ODU2MjUiLCJpYXQiOjE3MTY4OTM0MTl9.expected_signature")) .when() @@ -135,7 +133,7 @@ void given_badToken_when_tokeInfoIsInvoked_then_getBadRequest() { * */ given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000002") .body(new TokenInfoRequest("1.1.1")) .when() @@ -164,7 +162,7 @@ void given_tokenWithEncFiscalCode_when_decryptWentWrongWithError_then_getServerE * */ given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000003") .body(new TokenInfoRequest("eyJraWQiOiJhdXRoMDcwOTY0M2Y0OTM5NDUyOWI5MmMxOWE2OGM4ZTE4NGEvNjU4MWM3MDRkZWRhNDk3OTk0M2MzYjM0NDY4ZGY3YzIiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJhdWQiOiJtaWwucGFnb3BhLml0IiwiY2xpZW50SWQiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJtZXJjaGFudElkIjoiMjg0MDVmSGZrNzN4ODhEIiwiZmlzY2FsQ29kZSI6eyJraWQiOiJraWQiLCJhbGciOiJSU0EtT0FFUC0yNTYiLCJ2YWx1ZSI6IkFBRUNBdz09In0sImNoYW5uZWwiOiJQT1MiLCJpc3MiOiJodHRwOi8vZHVtbXkiLCJncm91cHMiOlsiTm90aWNlUGF5ZXIiLCJTbGF2ZVBvcyJdLCJ0ZXJtaW5hbElkIjoiMTIzNDU2NzgiLCJleHAiOjE3MTY4MDQ3MzksImFjcXVpcmVySWQiOiI0NTg1NjI1IiwiaWF0IjoxNzE2ODA0NDM5fQ.expected_signature")) .when() @@ -193,7 +191,7 @@ void given_tokenWithEncFiscalCode_when_decryptWentWrongWithException_then_getSer * */ given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000004") .body(new TokenInfoRequest("eyJraWQiOiJhdXRoMDcwOTY0M2Y0OTM5NDUyOWI5MmMxOWE2OGM4ZTE4NGEvNjU4MWM3MDRkZWRhNDk3OTk0M2MzYjM0NDY4ZGY3YzIiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJhdWQiOiJtaWwucGFnb3BhLml0IiwiY2xpZW50SWQiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJtZXJjaGFudElkIjoiMjg0MDVmSGZrNzN4ODhEIiwiZmlzY2FsQ29kZSI6eyJraWQiOiJraWQiLCJhbGciOiJSU0EtT0FFUC0yNTYiLCJ2YWx1ZSI6IkFBRUNBdz09In0sImNoYW5uZWwiOiJQT1MiLCJpc3MiOiJodHRwOi8vZHVtbXkiLCJncm91cHMiOlsiTm90aWNlUGF5ZXIiLCJTbGF2ZVBvcyJdLCJ0ZXJtaW5hbElkIjoiMTIzNDU2NzgiLCJleHAiOjE3MTY4MDQ3MzksImFjcXVpcmVySWQiOiI0NTg1NjI1IiwiaWF0IjoxNzE2ODA0NDM5fQ.expected_signature")) .when() @@ -222,7 +220,7 @@ void given_tokenWithEncFiscalCode_when_decryptWentWrongWithOther_then_getServerE * */ given() - .contentType(ContentType.APPLICATION_JSON) + .contentType(MediaType.APPLICATION_JSON) .header(HeaderParamName.REQUEST_ID, "00000000-0000-0000-0000-700000000005") .body(new TokenInfoRequest("eyJraWQiOiJhdXRoMDcwOTY0M2Y0OTM5NDUyOWI5MmMxOWE2OGM4ZTE4NGEvNjU4MWM3MDRkZWRhNDk3OTk0M2MzYjM0NDY4ZGY3YzIiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJhdWQiOiJtaWwucGFnb3BhLml0IiwiY2xpZW50SWQiOiIzOTY1ZGY1Ni1jYTlhLTQ5ZTUtOTdlOC0wNjE0MzNkNGEyNWIiLCJtZXJjaGFudElkIjoiMjg0MDVmSGZrNzN4ODhEIiwiZmlzY2FsQ29kZSI6eyJraWQiOiJraWQiLCJhbGciOiJSU0EtT0FFUC0yNTYiLCJ2YWx1ZSI6IkFBRUNBdz09In0sImNoYW5uZWwiOiJQT1MiLCJpc3MiOiJodHRwOi8vZHVtbXkiLCJncm91cHMiOlsiTm90aWNlUGF5ZXIiLCJTbGF2ZVBvcyJdLCJ0ZXJtaW5hbElkIjoiMTIzNDU2NzgiLCJleHAiOjE3MTY4MDQ3MzksImFjcXVpcmVySWQiOiI0NTg1NjI1IiwiaWF0IjoxNzE2ODA0NDM5fQ.expected_signature")) .when() diff --git a/src/test/resources/application.properties b/src/test/resources/application.properties new file mode 100644 index 00000000..d809ad38 --- /dev/null +++ b/src/test/resources/application.properties @@ -0,0 +1,8 @@ +quarkus.log.category."it.pagopa.swclient.mil".level=TRACE +quarkus.log.category."it.pagopa.swclient.mil".min-level=TRACE + +AZURE_AUTHORITY_HOST=https://login.microsoftonline.com/ +AZURE_TENANT_ID=da795842-fa15-4fd4-b556-f371ac9bafed +AZURE_FEDERATED_TOKEN_FILE=src/test/resources/azure-identity-token + +IDENTITY_ENDPOINT=https://login.microsoftonline.com/ \ No newline at end of file