From 0058cb62791255ab5d3f0732ac2818b7ce4dbafa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 7 Jun 2022 21:05:24 +0000 Subject: [PATCH 1/7] Bump apicurio-registry.version from 2.2.3.Final to 2.2.4.Final Bumps `apicurio-registry.version` from 2.2.3.Final to 2.2.4.Final. Updates `apicurio-registry-client` from 2.2.3.Final to 2.2.4.Final - [Release notes](https://github.com/apicurio/apicurio-registry/releases) - [Commits](https://github.com/apicurio/apicurio-registry/compare/2.2.3.Final...2.2.4.Final) Updates `apicurio-registry-serdes-avro-serde` from 2.2.3.Final to 2.2.4.Final --- updated-dependencies: - dependency-name: io.apicurio:apicurio-registry-client dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.apicurio:apicurio-registry-serdes-avro-serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- bom/application/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 34dccce7014d8..e8372a65b1414 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -186,7 +186,7 @@ 2.17.2 1.3.0.Final 1.11.0 - 2.2.3.Final + 2.2.4.Final 0.1.9.Final 0.8.8 1.17.2 From e9419ca8ce6adaa56ccdfde4c09feacce29e556b Mon Sep 17 00:00:00 2001 From: Falko Modler Date: Wed, 8 Jun 2022 00:02:29 +0200 Subject: [PATCH 2/7] Update postgres, mssql and mongo images for tests and devservices Also "downgrades" mariadb to 10.6 because that will actually be supported longer than 10.7. --- build-parent/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build-parent/pom.xml b/build-parent/pom.xml index 96b87d5e13d2a..5bf163ea1bab5 100644 --- a/build-parent/pom.xml +++ b/build-parent/pom.xml @@ -89,13 +89,13 @@ http - docker.io/postgres:14.2 - docker.io/mariadb:10.7 + docker.io/postgres:14 + docker.io/mariadb:10.6 docker.io/ibmcom/db2:11.5.7.0a - mcr.microsoft.com/mssql/server:2019-CU15-ubuntu-20.04 + mcr.microsoft.com/mssql/server:2019-latest docker.io/mysql:8.0 docker.io/gvenzl/oracle-xe:21-slim - docker.io/mongo:4.4.13 + docker.io/mongo:4.4 4.13.2 From d35e69a8e99b75bcd6c9dcfba87771415a3f2a0a Mon Sep 17 00:00:00 2001 From: Peter Palaga Date: Thu, 9 Jun 2022 13:28:48 +0200 Subject: [PATCH 3/7] Add missing -deployment entries to BOM for quarkus-smallrye-reactive-messaging-amqp, quarkus-smallrye-reactive-messaging-mqtt and quarkus-smallrye-reactive-messaging-rabbitmq --- bom/application/pom.xml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/bom/application/pom.xml b/bom/application/pom.xml index 34dccce7014d8..b5228e12a96d5 100644 --- a/bom/application/pom.xml +++ b/bom/application/pom.xml @@ -1385,16 +1385,31 @@ quarkus-smallrye-reactive-messaging-amqp ${project.version} + + io.quarkus + quarkus-smallrye-reactive-messaging-amqp-deployment + ${project.version} + io.quarkus quarkus-smallrye-reactive-messaging-mqtt ${project.version} + + io.quarkus + quarkus-smallrye-reactive-messaging-mqtt-deployment + ${project.version} + io.quarkus quarkus-smallrye-reactive-messaging-rabbitmq ${project.version} + + io.quarkus + quarkus-smallrye-reactive-messaging-rabbitmq-deployment + ${project.version} + io.quarkus quarkus-smallrye-metrics From 590edfefbe5ec04aa255dac9dc9d47ccb9d01643 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 9 Jun 2022 13:22:42 +0200 Subject: [PATCH 4/7] Fix package of hibernate-orm/deployment-spi The package is incorrect and makes the javadoc build fail. --- .../orm/deployment/spi}/DatabaseKindDialectBuildItem.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename extensions/hibernate-orm/deployment-spi/src/main/java/{io.quarkus.hibernate.orm.deployment.spi => io/quarkus/hibernate/orm/deployment/spi}/DatabaseKindDialectBuildItem.java (100%) diff --git a/extensions/hibernate-orm/deployment-spi/src/main/java/io.quarkus.hibernate.orm.deployment.spi/DatabaseKindDialectBuildItem.java b/extensions/hibernate-orm/deployment-spi/src/main/java/io/quarkus/hibernate/orm/deployment/spi/DatabaseKindDialectBuildItem.java similarity index 100% rename from extensions/hibernate-orm/deployment-spi/src/main/java/io.quarkus.hibernate.orm.deployment.spi/DatabaseKindDialectBuildItem.java rename to extensions/hibernate-orm/deployment-spi/src/main/java/io/quarkus/hibernate/orm/deployment/spi/DatabaseKindDialectBuildItem.java From 6ddf2d22cb77be45f9af773f5f843608bb2e990a Mon Sep 17 00:00:00 2001 From: Sergey Beryozkin Date: Wed, 25 May 2022 23:24:44 +0100 Subject: [PATCH 5/7] Add RestEasy Reactive and OidcSecurity test --- .../oidc-token-propagation-reactive/pom.xml | 22 ++++++++ .../it/keycloak/ProtectedJwtResource.java | 52 +++++++++++++++++ .../java/io/quarkus/it/keycloak/User.java | 15 +++++ .../it/keycloak/TestSecurityLazyAuthTest.java | 56 +++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/ProtectedJwtResource.java create mode 100644 integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/User.java create mode 100644 integration-tests/oidc-token-propagation-reactive/src/test/java/io/quarkus/it/keycloak/TestSecurityLazyAuthTest.java diff --git a/integration-tests/oidc-token-propagation-reactive/pom.xml b/integration-tests/oidc-token-propagation-reactive/pom.xml index af5b04910e051..93212dbcab094 100644 --- a/integration-tests/oidc-token-propagation-reactive/pom.xml +++ b/integration-tests/oidc-token-propagation-reactive/pom.xml @@ -15,6 +15,15 @@ Module that contains OpenID Connect Token Propagation Reactive tests + + io.quarkus + quarkus-resteasy-reactive-jackson + + + io.quarkus + quarkus-test-security-oidc + test + io.quarkus quarkus-junit5 @@ -34,6 +43,19 @@ io.quarkus quarkus-resteasy-reactive + + io.quarkus + quarkus-resteasy-reactive-jackson-deployment + ${project.version} + pom + test + + + * + * + + + io.quarkus quarkus-resteasy-reactive-deployment diff --git a/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/ProtectedJwtResource.java b/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/ProtectedJwtResource.java new file mode 100644 index 0000000000000..791c4232fd35a --- /dev/null +++ b/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/ProtectedJwtResource.java @@ -0,0 +1,52 @@ +package io.quarkus.it.keycloak; + +import javax.annotation.security.RolesAllowed; +import javax.inject.Inject; +import javax.ws.rs.Consumes; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.core.Context; +import javax.ws.rs.core.SecurityContext; + +import org.eclipse.microprofile.jwt.JsonWebToken; + +import io.quarkus.security.Authenticated; +import io.quarkus.security.identity.SecurityIdentity; + +@Path("/web-app") +@Authenticated +public class ProtectedJwtResource { + + @Inject + SecurityIdentity identity; + + @Inject + JsonWebToken accessToken; + + @Context + SecurityContext securityContext; + + @GET + @Path("test-security") + @RolesAllowed("viewer") + public String testSecurity() { + return securityContext.getUserPrincipal().getName(); + } + + @POST + @Path("test-security") + @Consumes("application/json") + @RolesAllowed("viewer") + public String testSecurityJson(User user) { + return user.getName() + ":" + securityContext.getUserPrincipal().getName(); + } + + @GET + @Path("test-security-jwt") + @RolesAllowed("viewer") + public String testSecurityJwt() { + return accessToken.getName() + ":" + accessToken.getGroups().iterator().next() + + ":" + accessToken.getClaim("email"); + } +} diff --git a/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/User.java b/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/User.java new file mode 100644 index 0000000000000..d84af41bcdf4d --- /dev/null +++ b/integration-tests/oidc-token-propagation-reactive/src/main/java/io/quarkus/it/keycloak/User.java @@ -0,0 +1,15 @@ +package io.quarkus.it.keycloak; + +public class User { + + private String name; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + +} diff --git a/integration-tests/oidc-token-propagation-reactive/src/test/java/io/quarkus/it/keycloak/TestSecurityLazyAuthTest.java b/integration-tests/oidc-token-propagation-reactive/src/test/java/io/quarkus/it/keycloak/TestSecurityLazyAuthTest.java new file mode 100644 index 0000000000000..2f4ea6ffb2440 --- /dev/null +++ b/integration-tests/oidc-token-propagation-reactive/src/test/java/io/quarkus/it/keycloak/TestSecurityLazyAuthTest.java @@ -0,0 +1,56 @@ +package io.quarkus.it.keycloak; + +import static org.hamcrest.Matchers.is; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.common.http.TestHTTPEndpoint; +import io.quarkus.test.junit.QuarkusTest; +import io.quarkus.test.security.TestSecurity; +import io.quarkus.test.security.oidc.Claim; +import io.quarkus.test.security.oidc.OidcSecurity; +import io.restassured.RestAssured; +import io.restassured.http.ContentType; + +@QuarkusTest +@TestHTTPEndpoint(ProtectedJwtResource.class) +public class TestSecurityLazyAuthTest { + + @Test + @TestSecurity(user = "user1", roles = "viewer") + public void testWithDummyUser() { + RestAssured.when().get("test-security").then() + .body(is("user1")); + } + + @Test + @TestSecurity(user = "user1", roles = "tester") + public void testWithDummyUserForbidden() { + RestAssured.when().get("test-security").then().statusCode(403); + } + + @Test + @TestSecurity(user = "user1", roles = "viewer") + public void testPostWithDummyUser() { + RestAssured.given().contentType(ContentType.JSON).when().body("{\"name\":\"user1\"}").post("test-security").then() + .body(is("user1:user1")); + } + + @Test + @TestSecurity(user = "user1", roles = "tester") + public void testPostWithDummyUserForbidden() { + RestAssured.given().contentType(ContentType.JSON).when().body("{\"name\":\"user1\"}").post("test-security").then() + .statusCode(403); + } + + @Test + @TestSecurity(user = "userJwt", roles = "viewer") + @OidcSecurity(claims = { + @Claim(key = "email", value = "user@gmail.com") + }) + public void testJwtGetWithDummyUser() { + RestAssured.when().get("test-security-jwt").then() + .body(is("userJwt:viewer:user@gmail.com")); + } + +} From 46bfea0b0dee095581d510f759273f2b459d8d85 Mon Sep 17 00:00:00 2001 From: Martin Kouba Date: Thu, 26 May 2022 14:05:39 +0200 Subject: [PATCH 6/7] QuteProcessor - more compact format to report incorrect expressions - resolves #25724 --- .../qute/deployment/QuteProcessor.java | 38 +++++++++++-------- .../TemplateDataValidationTest.java | 2 +- .../TemplateEnumValidationFailureTest.java | 2 +- ...emplateExtensionValidationFailureTest.java | 6 +-- .../TemplateGlobalValidationFailureTest.java | 5 +-- ...MessageBundleExpressionValidationTest.java | 2 +- ...undleTemplateExpressionValidationTest.java | 2 +- .../NamedBeanValidationFailureTest.java | 2 +- .../CheckedTemplateRequireTypeSafeTest.java | 2 +- .../InterfaceValidationFailureTest.java | 2 +- .../typesafe/TypeSafeLoopFailureTest.java | 2 +- .../typesafe/ValidationFailuresTest.java | 2 +- .../typesafe/WhenValidationFailureTest.java | 2 +- .../resteasy/deployment/TypeErrorTest.java | 2 +- .../qute/deployment/TypeErrorTest.java | 2 +- .../quarkus/test/qute/QuteErrorPageTest.java | 2 +- 16 files changed, 41 insertions(+), 34 deletions(-) diff --git a/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java b/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java index ce114af8a5eda..d86446af0144d 100644 --- a/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java +++ b/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/QuteProcessor.java @@ -186,39 +186,47 @@ void processTemplateErrors(TemplatesAnalysisBuildItem analysis, List { - assertTrue(t.getMessage().contains("Incorrect expression")); + assertTrue(t.getMessage().contains("Found incorrect expressions")); assertTrue(t.getMessage().contains("name.foo()")); }); diff --git a/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/deployment/src/test/java/io/quarkus/resteasy/reactive/qute/deployment/TypeErrorTest.java b/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/deployment/src/test/java/io/quarkus/resteasy/reactive/qute/deployment/TypeErrorTest.java index cbaf3ab513024..ac8a13836298f 100644 --- a/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/deployment/src/test/java/io/quarkus/resteasy/reactive/qute/deployment/TypeErrorTest.java +++ b/extensions/resteasy-reactive/quarkus-resteasy-reactive-qute/deployment/src/test/java/io/quarkus/resteasy/reactive/qute/deployment/TypeErrorTest.java @@ -20,7 +20,7 @@ public class TypeErrorTest { .addAsResource("templates/HelloResource/typedTemplatePrimitives.txt") .addAsResource(new StringAsset("Hello {name}!"), "templates/hello.txt")) .assertException(t -> { - assertTrue(t.getMessage().contains("Incorrect expression")); + assertTrue(t.getMessage().contains("Found incorrect expressions")); assertTrue(t.getMessage().contains("name.foo()")); }); diff --git a/integration-tests/devmode/src/test/java/io/quarkus/test/qute/QuteErrorPageTest.java b/integration-tests/devmode/src/test/java/io/quarkus/test/qute/QuteErrorPageTest.java index be9814850f204..effa9b27abe78 100644 --- a/integration-tests/devmode/src/test/java/io/quarkus/test/qute/QuteErrorPageTest.java +++ b/integration-tests/devmode/src/test/java/io/quarkus/test/qute/QuteErrorPageTest.java @@ -22,7 +22,7 @@ public class QuteErrorPageTest { public void testErrorPage() { config.modifyResourceFile("templates/hello.txt", file -> "{@java.lang.String hello}{hello.foo}"); RestAssured.when().get("/hello").then() - .body(containsString("Incorrect expression found: {hello.foo}")) + .body(containsString("hello.txt:1"), containsString("{hello.foo}")) .statusCode(Status.INTERNAL_SERVER_ERROR.getStatusCode()); } From c8b57b180c654222bbf0c5240f41e00461a5f769 Mon Sep 17 00:00:00 2001 From: Guillaume Smet Date: Thu, 9 Jun 2022 18:36:55 +0200 Subject: [PATCH 7/7] Jakarta - Upgrade SmallRye JWT to 4.0.0-RC2 --- jakarta/rewrite.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jakarta/rewrite.yml b/jakarta/rewrite.yml index 680eefa754dd8..7c7c3f0481f26 100644 --- a/jakarta/rewrite.yml +++ b/jakarta/rewrite.yml @@ -430,7 +430,7 @@ recipeList: newValue: 2.0 - org.openrewrite.maven.ChangePropertyValue: key: smallrye-jwt.version - newValue: 4.0.0-RC1 + newValue: 4.0.0-RC2 - org.openrewrite.maven.ChangePropertyValue: key: microprofile-lra.version newValue: 2.0-RC1