Quarkus: graphql operations over websockets bypass
Description
Quarkus processes unauthenticated WebSocket GraphQL requests when no role-based permission is specified, bypassing endpoint security.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Quarkus processes unauthenticated WebSocket GraphQL requests when no role-based permission is specified, bypassing endpoint security.
Vulnerability
Overview
CVE-2023-6394 describes a security bypass in Quarkus that occurs when processing GraphQL requests over WebSocket connections. The root cause is that when a GraphQL operation is received over a WebSocket without a role-based permission annotation, Quarkus processes the request without performing authentication, even though the endpoint is configured as secured [1][3]. This behavior effectively bypasses the intended access controls.
Exploitation
Conditions
An attacker can exploit this flaw by sending crafted GraphQL requests over WebSocket to a Quarkus endpoint that is supposed to be protected. No special authentication or privileges are needed; the vulnerability is triggered simply by omitting role-based permissions on the GraphQL operation. The attack is network-based and does not require user interaction [1][3].
Impact
Successful exploitation allows an attacker to access sensitive information and invoke functionality that is outside the scope of normal granted API permissions. This could lead to unauthorized data exposure or privilege escalation, depending on the application's GraphQL schema and business logic [1][3].
Mitigation
Red Hat has addressed this issue in Red Hat build of Quarkus 2.13.9, as detailed in RHSA-2023:7700 [4]. Users should upgrade to the patched version to remediate the vulnerability. No workarounds are mentioned in the available references.
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
io.quarkus:quarkus-smallrye-graphql-clientMaven | >= 2.14.0, < 3.5.3 | 3.5.3 |
io.quarkus:quarkus-smallrye-graphql-clientMaven | < 2.13.9.Final | 2.13.9.Final |
Affected products
3- Red Hat/Red Hat build of Quarkus 2.13.9.Finalv5cpe:/a:redhat:quarkus:2.13Range: 2.13.9.Final-redhat-00002
- Red Hat/Red Hat build of Quarkus 3.2.9.Finalv5cpe:/a:redhat:quarkus:3.2::el8Range: 3.2.9.Final-redhat-00002
Patches
2dc364b898175[RELEASE] - Bump version to 3.6.0
300 files changed · +304 −304
bom/application/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-project</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
bom/test/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-project</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
build-parent/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-project</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
core/builder/pom.xml+1 −1 modified@@ -10,7 +10,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-build-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent>
core/class-change-agent/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent>
core/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-core-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-core-deployment</artifactId>
core/devmode-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
core/junit4-mock/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-core-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-junit4-mock</artifactId>
core/launcher/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
core/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
core/processor/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-core-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-extension-processor</artifactId>
core/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-core-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-core</artifactId>
coverage-report/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../build-parent/pom.xml</relativePath> </parent> <artifactId>quarkus-coverage-report</artifactId>
devtools/bom-descriptor-json/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devtools-all</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
devtools/cli/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/gradle/gradle-application-plugin/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>io.quarkus.gradle.plugin.parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/gradle/gradle-extension-plugin/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>io.quarkus.gradle.plugin.parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/gradle/gradle-model/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>io.quarkus.gradle.plugin.parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/gradle/gradle.properties+1 −1 modified@@ -1 +1 @@ -version = 999-SNAPSHOT +version = 3.6.0
devtools/gradle/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-build-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/maven/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../../build-parent/pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
devtools/platform-properties/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devtools-all</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
devtools/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-build-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../build-parent/pom.xml</relativePath> </parent>
devtools/project-core-extension-codestarts/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-devtools-all</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-project-core-extension-codestarts</artifactId>
docs/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-build-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../build-parent/pom.xml</relativePath> </parent>
extensions/agroal/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-agroal-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/agroal/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/agroal/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-agroal-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/agroal/spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-agroal-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/amazon-lambda/common-deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda/common-runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda/event-server/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-http/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-http-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-http/http-event-server/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-http-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-http/maven-archetype/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-amazon-lambda-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/amazon-lambda-http/maven-archetype/src/main/resources/archetype-resources/pom.xml+2 −2 modified@@ -14,10 +14,10 @@ <maven.compiler.source>11</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <quarkus-plugin.version>999-SNAPSHOT</quarkus-plugin.version> + <quarkus-plugin.version>3.6.0</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> - <quarkus.platform.version>999-SNAPSHOT</quarkus.platform.version> + <quarkus.platform.version>3.6.0</quarkus.platform.version> <surefire-plugin.version>3.1.2</surefire-plugin.version> </properties> <dependencyManagement>
extensions/amazon-lambda-http/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-http/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-http-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda/maven-archetype/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-amazon-lambda-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/amazon-lambda/maven-archetype/src/main/resources/archetype-resources/pom.xml+2 −2 modified@@ -13,10 +13,10 @@ <maven.compiler.source>11</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <quarkus-plugin.version>999-SNAPSHOT</quarkus-plugin.version> + <quarkus-plugin.version>3.6.0</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> - <quarkus.platform.version>999-SNAPSHOT</quarkus.platform.version> + <quarkus.platform.version>3.6.0</quarkus.platform.version> <surefire-plugin.version>3.1.2</surefire-plugin.version> </properties> <dependencyManagement>
extensions/amazon-lambda/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-rest/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-rest-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-rest/maven-archetype/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-amazon-lambda-rest-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/amazon-lambda-rest/maven-archetype/src/main/resources/archetype-resources/pom.xml+2 −2 modified@@ -14,10 +14,10 @@ <maven.compiler.source>11</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <quarkus-plugin.version>999-SNAPSHOT</quarkus-plugin.version> + <quarkus-plugin.version>3.6.0</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> - <quarkus.platform.version>999-SNAPSHOT</quarkus.platform.version> + <quarkus.platform.version>3.6.0</quarkus.platform.version> <surefire-plugin.version>3.1.2</surefire-plugin.version> </properties> <dependencyManagement>
extensions/amazon-lambda-rest/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-rest/rest-event-server/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-rest-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-rest/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-rest-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-xray/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-xray-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-xray/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/amazon-lambda-xray/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-amazon-lambda-xray-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/apache-httpclient/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-apache-httpclient-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-apache-httpclient-deployment</artifactId> <name>Quarkus - Apache HttpClient - Deployment</name>
extensions/apache-httpclient/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-extensions-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-apache-httpclient-parent</artifactId> <packaging>pom</packaging>
extensions/apache-httpclient/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-apache-httpclient-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-apache-httpclient</artifactId> <name>Quarkus - Apache HttpClient - Runtime</name>
extensions/arc/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-arc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/arc/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/arc/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-arc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/avro/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-avro-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-avro-deployment</artifactId>
extensions/avro/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/avro/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-avro-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-avro</artifactId>
extensions/awt/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-awt-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-awt-deployment</artifactId> <name>Quarkus - AWT - Deployment</name>
extensions/awt/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-extensions-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-awt-parent</artifactId> <packaging>pom</packaging>
extensions/awt/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-awt-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-awt</artifactId> <name>Quarkus - AWT - Runtime</name>
extensions/azure-functions/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-azure-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/azure-functions-http/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-azure-functions-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/azure-functions-http/pom.xml+1 −1 modified@@ -21,7 +21,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/azure-functions-http/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-azure-functions-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/azure-functions/pom.xml+1 −1 modified@@ -21,7 +21,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/azure-functions/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-azure-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/cache/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-cache-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-cache-deployment</artifactId>
extensions/cache/deployment-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-cache-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/cache/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/cache/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-cache-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-cache</artifactId>
extensions/cache/runtime-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-cache-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/caffeine/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-caffeine-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/caffeine/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/caffeine/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-caffeine-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/config-yaml/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-config-yaml-deployment</artifactId>
extensions/config-yaml/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/config-yaml/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-config-yaml-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-config-yaml</artifactId>
extensions/container-image/container-image-buildpack/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-buildpack-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-buildpack-deployment</artifactId>
extensions/container-image/container-image-buildpack/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/container-image-buildpack/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-buildpack-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-buildpack</artifactId>
extensions/container-image/container-image-docker/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-docker-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-docker-deployment</artifactId>
extensions/container-image/container-image-docker/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/container-image-docker/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-docker-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-docker</artifactId>
extensions/container-image/container-image-jib/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-jib-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-jib-deployment</artifactId>
extensions/container-image/container-image-jib/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/container-image-jib/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-jib-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-jib</artifactId>
extensions/container-image/container-image-openshift/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-openshift-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-openshift-deployment</artifactId>
extensions/container-image/container-image-openshift/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/container-image-openshift/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-openshift-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-openshift</artifactId>
extensions/container-image/container-image-s2i/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-s2i-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-s2i-deployment</artifactId>
extensions/container-image/container-image-s2i/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/container-image-s2i/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-container-image-s2i-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image-s2i</artifactId>
extensions/container-image/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/container-image/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-container-image</artifactId>
extensions/container-image/spi/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/container-image/util/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-container-image-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/credentials/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-credentials-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/credentials/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/credentials/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-credentials-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/csrf-reactive/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-csrf-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/csrf-reactive/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/csrf-reactive/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-csrf-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/datasource/common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-datasource-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/datasource/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-datasource-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/datasource/deployment-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-datasource-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/datasource/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/datasource/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-datasource-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/db2/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/derby/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/h2/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/mariadb/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/mssql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/mysql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/oracle/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/devservices/postgresql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-devservices-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-java-client/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elasticsearch-java-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-java-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elasticsearch-java-client/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elasticsearch-java-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-rest-client-common/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elasticsearch-rest-client-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-rest-client-common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-rest-client-common/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elasticsearch-rest-client-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elasticsearch-rest-client/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elasticsearch-rest-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elasticsearch-rest-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elasticsearch-rest-client/runtime/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elasticsearch-rest-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-common/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-common/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-jdbc/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elytron-security-jdbc-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-jdbc/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-extensions-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-jdbc/runtime/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elytron-security-jdbc-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-ldap/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elytron-security-ldap-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-ldap/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-extensions-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-ldap/runtime/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-elytron-security-ldap-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/elytron-security-oauth2/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-oauth2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-oauth2/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-oauth2/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-oauth2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-properties-file/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-properties-file-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-properties-file/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security-properties-file/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-properties-file-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/elytron-security/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-elytron-security-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/flyway/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-flyway-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/flyway/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/flyway/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-flyway-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-amazon-lambda/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-amazon-lambda-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-amazon-lambda/maven-archetype/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-amazon-lambda-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-amazon-lambda/maven-archetype/src/main/resources/archetype-resources/pom.xml+2 −2 modified@@ -13,10 +13,10 @@ <maven.compiler.source>11</maven.compiler.source> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <quarkus-plugin.version>999-SNAPSHOT</quarkus-plugin.version> + <quarkus-plugin.version>3.6.0</quarkus-plugin.version> <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id> <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id> - <quarkus.platform.version>999-SNAPSHOT</quarkus.platform.version> + <quarkus.platform.version>3.6.0</quarkus.platform.version> <surefire-plugin.version>3.1.2</surefire-plugin.version> </properties> <dependencyManagement>
extensions/funqy/funqy-amazon-lambda/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-amazon-lambda/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-amazon-lambda-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-google-cloud-functions/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-google-cloud-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-google-cloud-functions/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-google-cloud-functions/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-google-cloud-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-http/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-http/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-http/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-knative-events/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-knative-events-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-knative-events/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-knative-events/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-knative-events-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-server-common/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-server-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-server-common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/funqy-server-common/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-funqy-server-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/funqy/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-google-cloud-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions-http/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-google-cloud-functions-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions-http/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions-http/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-google-cloud-functions-http-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/google-cloud-functions/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-google-cloud-functions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/grpc/api/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-api</artifactId>
extensions/grpc/codegen/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-codegen</artifactId>
extensions/grpc-common/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-grpc-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/grpc-common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/grpc-common/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-grpc-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/grpc/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-deployment</artifactId>
extensions/grpc/inprocess/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-inprocess</artifactId>
extensions/grpc/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/grpc/protoc/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-protoc-plugin</artifactId>
extensions/grpc/runtime/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc</artifactId>
extensions/grpc/stubs/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-stubs</artifactId>
extensions/grpc/xds/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <artifactId>quarkus-grpc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-grpc-xds</artifactId>
extensions/hal/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hal-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hal/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hal/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hal-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-envers/deployment/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-hibernate-envers-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/hibernate-envers/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-extensions-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/hibernate-envers/runtime/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-hibernate-envers-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/hibernate-orm/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-orm-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-orm/deployment-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-orm-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-orm/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-orm/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-orm-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-reactive/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-reactive/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-reactive/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-coordination-outbox-polling/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-search-orm-coordination-outbox-polling-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-coordination-outbox-polling/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-coordination-outbox-polling/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-search-orm-coordination-outbox-polling-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-elasticsearch/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-search-orm-elasticsearch-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-elasticsearch/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-search-orm-elasticsearch/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-search-orm-elasticsearch-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-validator/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-validator-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-validator/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-validator/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-validator-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/hibernate-validator/spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-hibernate-validator-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/infinispan-client/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-infinispan-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/infinispan-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/infinispan-client/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-infinispan-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/info/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-info-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/info/deployment-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-info-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/info/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/info/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-info-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/info/runtime-spi/pom.xml+1 −1 modified@@ -6,7 +6,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-info-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jackson/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jackson-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jackson/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jackson/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jackson-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jackson/spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jackson-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxb/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jaxb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxb/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxb/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jaxb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxp/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jaxp-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxp/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxp/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jaxp-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jaxrs-spi/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-jaxrs-spi-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-jaxrs-spi-deployment</artifactId>
extensions/jaxrs-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-db2/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-db2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-db2/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-db2/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-db2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-derby/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-derby-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-derby/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-derby/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-derby-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-h2/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-h2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-h2/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-h2/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-h2-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mariadb/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mariadb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mariadb/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mariadb/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mariadb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mssql/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mssql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mssql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mssql/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mssql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mysql/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mysql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mysql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-mysql/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-mysql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-oracle/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-oracle-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-oracle/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-oracle/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-oracle-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-postgresql/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-postgresql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-postgresql/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/jdbc-postgresql/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jdbc-postgresql-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jdbc/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jms-spi/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-jms-spi-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-jms-spi-deployment</artifactId>
extensions/jms-spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonb/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jsonb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonb/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonb/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jsonb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonb/spi/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jsonb-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonp/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jsonp-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonp/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/jsonp/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-jsonp-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kafka-client/deployment/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kafka-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kafka-client-deployment</artifactId>
extensions/kafka-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent>
extensions/kafka-client/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kafka-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kafka-client</artifactId>
extensions/kafka-streams/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kafka-streams-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kafka-streams/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kafka-streams/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kafka-streams-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-common/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-common/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-common/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-common-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-reactive/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-reactive/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client-reactive/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-reactive-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-admin-client/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-admin-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-authorization/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-authorization-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-authorization/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/keycloak-authorization/runtime/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-keycloak-authorization-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kotlin/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kotlin-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kotlin/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kotlin/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kotlin-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kotlin</artifactId>
extensions/kubernetes-client/deployment-internal/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kubernetes-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-client/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kubernetes-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-client/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-client/runtime-internal/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kubernetes-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kubernetes-client-internal</artifactId>
extensions/kubernetes-client/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kubernetes-client-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kubernetes-client</artifactId>
extensions/kubernetes-client/spi/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-kubernetes-client-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-config/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kubernetes-config-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-config/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-config/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kubernetes-config-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kubernetes-config</artifactId>
extensions/kubernetes-service-binding/deployment/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-kubernetes-service-binding-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-service-binding/pom.xml+1 −1 modified@@ -5,7 +5,7 @@ <parent> <artifactId>quarkus-extensions-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> <relativePath>../pom.xml</relativePath> </parent> <modelVersion>4.0.0</modelVersion>
extensions/kubernetes-service-binding/runtime/pom.xml+1 −1 modified@@ -7,7 +7,7 @@ <parent> <groupId>io.quarkus</groupId> <artifactId>quarkus-kubernetes-service-binding-parent</artifactId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <artifactId>quarkus-kubernetes-service-binding</artifactId>
extensions/kubernetes-service-binding/spi/pom.xml+1 −1 modified@@ -4,7 +4,7 @@ <parent> <artifactId>quarkus-kubernetes-service-binding-parent</artifactId> <groupId>io.quarkus</groupId> - <version>999-SNAPSHOT</version> + <version>3.6.0</version> </parent> <modelVersion>4.0.0</modelVersion>
25ee3bec78c8Merge pull request #36961 from rubik-cube-man/smallrye-graphql-websocket-authorization
18 files changed · +964 −3
extensions/smallrye-graphql-client/deployment/pom.xml+10 −0 modified@@ -63,6 +63,16 @@ <artifactId>stork-service-discovery-static-list</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-elytron-security-deployment</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-elytron-security-properties-file-deployment</artifactId> + <scope>test</scope> + </dependency> </dependencies> <build>
extensions/smallrye-graphql-client/deployment/src/test/java/io/quarkus/smallrye/graphql/client/deployment/DynamicGraphQLClientWebSocketAuthenticationHttpPermissionsTest.java+137 −0 added@@ -0,0 +1,137 @@ +package io.quarkus.smallrye.graphql.client.deployment; + +import jakarta.annotation.security.RolesAllowed; + +import org.eclipse.microprofile.graphql.GraphQLApi; +import org.eclipse.microprofile.graphql.Query; +import org.jboss.shrinkwrap.api.asset.EmptyAsset; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import io.quarkus.test.QuarkusUnitTest; +import io.smallrye.common.annotation.NonBlocking; +import io.smallrye.graphql.api.Subscription; +import io.smallrye.graphql.client.Response; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClient; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClientBuilder; +import io.smallrye.mutiny.Multi; +import io.smallrye.mutiny.helpers.test.AssertSubscriber; +import io.vertx.core.http.UpgradeRejectedException; + +/** + * Due to the complexity of establishing a WebSocket, WebSocket/Subscription testing of the GraphQL server is done here, + * as the client framework comes in very useful for establishing the connection to the server. + * <br> + * This test establishes connections to the server, and ensures that the connected user has the necessary permissions to + * execute the operation. + */ +public class DynamicGraphQLClientWebSocketAuthenticationHttpPermissionsTest { + + static String url = "http://" + System.getProperty("quarkus.http.host", "localhost") + ":" + + System.getProperty("quarkus.http.test-port", "8081") + "/graphql"; + + @RegisterExtension + static QuarkusUnitTest test = new QuarkusUnitTest() + .withApplicationRoot((jar) -> jar + .addClasses(SecuredApi.class, Foo.class) + .addAsResource("application-secured-http-permissions.properties", "application.properties") + .addAsResource("users.properties") + .addAsResource("roles.properties") + .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")); + + @Disabled("TODO: enable after upgrade to smallrye-graphql 1.6.1, with 1.6.0 a websocket upgrade failure causes a hang here") + @Test + public void testUnauthenticatedForQueryWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .executeSingleOperationsOverWebsocket(true); + try (DynamicGraphQLClient client = clientBuilder.build()) { + try { + client.executeSync("{ baz { message} }"); + Assertions.fail("WebSocket upgrade should fail"); + } catch (UpgradeRejectedException e) { + // ok + } + } + } + + @Test + public void testUnauthenticatedForSubscriptionWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url); + try (DynamicGraphQLClient client = clientBuilder.build()) { + AssertSubscriber<Response> subscriber = new AssertSubscriber<>(); + client.subscription("{ bazSub { message} }").subscribe().withSubscriber(subscriber); + subscriber.awaitFailure().assertFailedWith(UpgradeRejectedException.class); + } + } + + public static class Foo { + + private String message; + + public Foo(String foo) { + this.message = foo; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + } + + @GraphQLApi + public static class SecuredApi { + + @Query + @RolesAllowed("fooRole") + @NonBlocking + public Foo foo() { + return new Foo("foo"); + } + + @Query + @RolesAllowed("barRole") + public Foo bar() { + return new Foo("bar"); + } + + @Query + public Foo baz() { + return new Foo("baz"); + } + + @Subscription + @RolesAllowed("fooRole") + public Multi<Foo> fooSub() { + return Multi.createFrom().emitter(emitter -> { + emitter.emit(new Foo("foo")); + emitter.complete(); + }); + } + + @Subscription + @RolesAllowed("barRole") + public Multi<Foo> barSub() { + return Multi.createFrom().emitter(emitter -> { + emitter.emit(new Foo("bar")); + emitter.complete(); + }); + } + + @Subscription + public Multi<Foo> bazSub() { + return Multi.createFrom().emitter(emitter -> { + emitter.emit(new Foo("baz")); + emitter.complete(); + }); + } + + } +}
extensions/smallrye-graphql-client/deployment/src/test/java/io/quarkus/smallrye/graphql/client/deployment/DynamicGraphQLClientWebSocketAuthenticationTest.java+207 −0 added@@ -0,0 +1,207 @@ +package io.quarkus.smallrye.graphql.client.deployment; + +import static org.awaitility.Awaitility.await; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import java.util.concurrent.atomic.AtomicBoolean; + +import jakarta.annotation.security.RolesAllowed; +import jakarta.json.JsonValue; + +import org.eclipse.microprofile.graphql.GraphQLApi; +import org.eclipse.microprofile.graphql.Query; +import org.jboss.shrinkwrap.api.asset.EmptyAsset; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; + +import io.quarkus.test.QuarkusUnitTest; +import io.smallrye.common.annotation.NonBlocking; +import io.smallrye.graphql.api.Subscription; +import io.smallrye.graphql.client.Response; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClient; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClientBuilder; +import io.smallrye.mutiny.Multi; + +/** + * Due to the complexity of establishing a WebSocket, WebSocket/Subscription testing of the GraphQL server is done here, + * as the client framework comes in very useful for establishing the connection to the server. + * <br> + * This test establishes connections to the server, and ensures that the connected user has the necessary permissions to + * execute the operation. + */ +public class DynamicGraphQLClientWebSocketAuthenticationTest { + + static String url = "http://" + System.getProperty("quarkus.http.host", "localhost") + ":" + + System.getProperty("quarkus.http.test-port", "8081") + "/graphql"; + + @RegisterExtension + static QuarkusUnitTest test = new QuarkusUnitTest() + .withApplicationRoot((jar) -> jar + .addClasses(SecuredApi.class, Foo.class) + .addAsResource("application-secured.properties", "application.properties") + .addAsResource("users.properties") + .addAsResource("roles.properties") + .addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")); + + @Test + public void testAuthenticatedUserForSubscription() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .header("Authorization", "Basic ZGF2aWQ6cXdlcnR5MTIz"); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Multi<Response> subscription = client + .subscription("subscription fooSub { fooSub { message } }"); + + assertNotNull(subscription); + + AtomicBoolean hasData = new AtomicBoolean(false); + AtomicBoolean hasCompleted = new AtomicBoolean(false); + + subscription.subscribe().with(item -> { + assertFalse(hasData.get()); + assertTrue(item.hasData()); + assertEquals(JsonValue.ValueType.OBJECT, item.getData().get("fooSub").getValueType()); + assertEquals("foo", item.getData().getJsonObject("fooSub").getString("message")); + hasData.set(true); + }, Assertions::fail, () -> { + hasCompleted.set(true); + }); + + await().untilTrue(hasCompleted); + assertTrue(hasData.get()); + } + } + + @Test + public void testAuthenticatedUserForQueryWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .header("Authorization", "Basic ZGF2aWQ6cXdlcnR5MTIz") + .executeSingleOperationsOverWebsocket(true); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Response response = client.executeSync("{ foo { message} }"); + assertTrue(response.hasData()); + assertEquals("foo", response.getData().getJsonObject("foo").getString("message")); + } + } + + @Test + public void testAuthorizedAndUnauthorizedForQueryWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .header("Authorization", "Basic ZGF2aWQ6cXdlcnR5MTIz") + .executeSingleOperationsOverWebsocket(true); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Response response = client.executeSync("{ foo { message} }"); + assertTrue(response.hasData()); + assertEquals("foo", response.getData().getJsonObject("foo").getString("message")); + + // Run a second query with a different result to validate that the result of the first query isn't being cached at all. + response = client.executeSync("{ bar { message} }"); + assertEquals(JsonValue.ValueType.NULL, response.getData().get("bar").getValueType()); + } + } + + @Test + public void testUnauthorizedUserForSubscription() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .header("Authorization", "Basic ZGF2aWQ6cXdlcnR5MTIz"); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Multi<Response> subscription = client + .subscription("subscription barSub { barSub { message } }"); + + assertNotNull(subscription); + + AtomicBoolean returned = new AtomicBoolean(false); + + subscription.subscribe().with(item -> { + assertEquals(JsonValue.ValueType.NULL, item.getData().get("barSub").getValueType()); + returned.set(true); + }, throwable -> Assertions.fail(throwable)); + + await().untilTrue(returned); + } + } + + @Test + public void testUnauthorizedUserForQueryWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .header("Authorization", "Basic ZGF2aWQ6cXdlcnR5MTIz") + .executeSingleOperationsOverWebsocket(true); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Response response = client.executeSync("{ bar { message } }"); + assertEquals(JsonValue.ValueType.NULL, response.getData().get("bar").getValueType()); + } + } + + @Test + public void testUnauthenticatedForQueryWebSocket() throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url) + .executeSingleOperationsOverWebsocket(true); + try (DynamicGraphQLClient client = clientBuilder.build()) { + Response response = client.executeSync("{ foo { message} }"); + assertEquals(JsonValue.ValueType.NULL, response.getData().get("foo").getValueType()); + } + } + + public static class Foo { + + private String message; + + public Foo(String foo) { + this.message = foo; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + } + + @GraphQLApi + public static class SecuredApi { + + @Query + @RolesAllowed("fooRole") + @NonBlocking + public Foo foo() { + return new Foo("foo"); + } + + @Query + @RolesAllowed("barRole") + public Foo bar() { + return new Foo("bar"); + } + + @Subscription + @RolesAllowed("fooRole") + public Multi<Foo> fooSub() { + return Multi.createFrom().emitter(emitter -> { + emitter.emit(new Foo("foo")); + emitter.complete(); + }); + } + + @Subscription + @RolesAllowed("barRole") + public Multi<Foo> barSub() { + return Multi.createFrom().emitter(emitter -> { + emitter.emit(new Foo("bar")); + emitter.complete(); + }); + } + + } +}
extensions/smallrye-graphql-client/deployment/src/test/resources/application-secured-http-permissions.properties+13 −0 added@@ -0,0 +1,13 @@ +quarkus.security.users.file.enabled=true +quarkus.security.users.file.plain-text=true +quarkus.security.users.file.users=users.properties +quarkus.security.users.file.roles=roles.properties +quarkus.http.auth.basic=true + +quarkus.smallrye-graphql.log-payload=queryAndVariables +quarkus.smallrye-graphql.print-data-fetcher-exception=true +quarkus.smallrye-graphql.error-extension-fields=exception,classification,code,description,validationErrorType,queryPath + +quarkus.http.auth.permission.authenticated.paths=/graphql +quarkus.http.auth.permission.authenticated.methods=GET,POST +quarkus.http.auth.permission.authenticated.policy=authenticated \ No newline at end of file
extensions/smallrye-graphql-client/deployment/src/test/resources/application-secured.properties+9 −0 added@@ -0,0 +1,9 @@ +quarkus.security.users.file.enabled=true +quarkus.security.users.file.plain-text=true +quarkus.security.users.file.users=users.properties +quarkus.security.users.file.roles=roles.properties +quarkus.http.auth.basic=true + +quarkus.smallrye-graphql.log-payload=queryAndVariables +quarkus.smallrye-graphql.print-data-fetcher-exception=true +quarkus.smallrye-graphql.error-extension-fields=exception,classification,code,description,validationErrorType,queryPath
extensions/smallrye-graphql-client/deployment/src/test/resources/roles.properties+1 −0 added@@ -0,0 +1 @@ +david=fooRole \ No newline at end of file
extensions/smallrye-graphql-client/deployment/src/test/resources/users.properties+1 −0 added@@ -0,0 +1 @@ +david=qwerty123 \ No newline at end of file
extensions/smallrye-graphql/deployment/src/main/java/io/quarkus/smallrye/graphql/deployment/SmallRyeGraphQLProcessor.java+2 −1 modified@@ -65,6 +65,7 @@ import io.quarkus.smallrye.graphql.runtime.SmallRyeGraphQLRecorder; import io.quarkus.smallrye.graphql.runtime.SmallRyeGraphQLRuntimeConfig; import io.quarkus.vertx.http.deployment.BodyHandlerBuildItem; +import io.quarkus.vertx.http.deployment.FilterBuildItem; import io.quarkus.vertx.http.deployment.HttpRootPathBuildItem; import io.quarkus.vertx.http.deployment.NonApplicationRootPathBuildItem; import io.quarkus.vertx.http.deployment.RouteBuildItem; @@ -149,7 +150,7 @@ public class SmallRyeGraphQLProcessor { private static final List<String> SUPPORTED_WEBSOCKET_SUBPROTOCOLS = List.of(SUBPROTOCOL_GRAPHQL_WS, SUBPROTOCOL_GRAPHQL_TRANSPORT_WS); - private static final int GRAPHQL_WEBSOCKET_HANDLER_ORDER = -10000; + private static final int GRAPHQL_WEBSOCKET_HANDLER_ORDER = (-1 * FilterBuildItem.AUTHORIZATION) + 1; private static final String GRAPHQL_MEDIA_TYPE = "application/graphql+json";
extensions/smallrye-graphql/runtime/src/main/java/io/quarkus/smallrye/graphql/runtime/SmallRyeGraphQLOverWebSocketHandler.java+28 −1 modified@@ -6,10 +6,12 @@ import io.quarkus.security.identity.CurrentIdentityAssociation; import io.quarkus.vertx.http.runtime.CurrentVertxRequest; +import io.quarkus.vertx.http.runtime.security.QuarkusHttpUser; import io.smallrye.graphql.websocket.GraphQLWebSocketSession; import io.smallrye.graphql.websocket.GraphQLWebsocketHandler; import io.smallrye.graphql.websocket.graphqltransportws.GraphQLTransportWSSubprotocolHandler; import io.smallrye.graphql.websocket.graphqlws.GraphQLWSSubprotocolHandler; +import io.vertx.core.Handler; import io.vertx.core.http.HttpHeaders; import io.vertx.core.http.ServerWebSocket; import io.vertx.ext.web.RoutingContext; @@ -54,9 +56,34 @@ protected void doHandle(final RoutingContext ctx) { serverWebSocket.close(); return; } + + QuarkusHttpUser user = (QuarkusHttpUser) ctx.user(); + long cancellation = -1L; // Do not use 0, as you won't be able to distinguish between not set, and the first task Id + if (user != null) { + //close the connection when the identity expires + Long expire = user.getSecurityIdentity().getAttribute("quarkus.identity.expire-time"); + if (expire != null) { + cancellation = ctx.vertx().setTimer((expire * 1000) - System.currentTimeMillis(), + new Handler<Long>() { + @Override + public void handle(Long event) { + if (!serverWebSocket.isClosed()) { + serverWebSocket.close((short) 1008, "Authentication expired"); + } + } + }); + } + } + log.debugf("Starting websocket with subprotocol = %s", subprotocol); GraphQLWebsocketHandler finalHandler = handler; - serverWebSocket.closeHandler(v -> finalHandler.onClose()); + long finalCancellation = cancellation; + serverWebSocket.closeHandler(v -> { + finalHandler.onClose(); + if (finalCancellation != -1) { + ctx.vertx().cancelTimer(finalCancellation); + } + }); serverWebSocket.endHandler(v -> finalHandler.onEnd()); serverWebSocket.exceptionHandler(finalHandler::onThrowable); serverWebSocket.textMessageHandler(finalHandler::onMessage);
.github/native-tests.json+1 −1 modified@@ -111,7 +111,7 @@ { "category": "Misc3", "timeout": 80, - "test-modules": "kubernetes-client, openshift-client, kubernetes-service-binding-jdbc, smallrye-config, smallrye-graphql, smallrye-graphql-client, smallrye-metrics", + "test-modules": "kubernetes-client, openshift-client, kubernetes-service-binding-jdbc, smallrye-config, smallrye-graphql, smallrye-graphql-client, smallrye-graphql-client-keycloak, smallrye-metrics", "os-name": "ubuntu-latest" }, {
integration-tests/pom.xml+1 −0 modified@@ -318,6 +318,7 @@ <module>smallrye-metrics</module> <module>smallrye-graphql</module> <module>smallrye-graphql-client</module> + <module>smallrye-graphql-client-keycloak</module> <module>smallrye-stork-registration</module> <module>jpa-without-entity</module> <module>quartz</module>
integration-tests/smallrye-graphql-client-keycloak/pom.xml+260 −0 added@@ -0,0 +1,260 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>quarkus-integration-tests-parent</artifactId> + <groupId>io.quarkus</groupId> + <version>999-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>quarkus-integration-test-smallrye-graphql-client-keycloak</artifactId> + <name>Quarkus - Integration Tests - SmallRye GraphQL Client with Keycloak</name> + + <properties> + <keycloak.url>http://localhost:8180/auth</keycloak.url> + </properties> + + <dependencies> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-smallrye-graphql</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-smallrye-graphql-client</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-resteasy-deployment</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-oidc</artifactId> + </dependency> + <dependency> + <groupId>io.rest-assured</groupId> + <artifactId>rest-assured</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-rest-client-deployment</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-junit5</artifactId> + <scope>test</scope> + </dependency> + + <!-- Minimal test dependencies to *-deployment artifacts for consistent build order --> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-smallrye-graphql-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-smallrye-graphql-client-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-test-keycloak-server</artifactId> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-oidc-deployment</artifactId> + <version>${project.version}</version> + <type>pom</type> + <scope>test</scope> + <exclusions> + <exclusion> + <groupId>*</groupId> + <artifactId>*</artifactId> + </exclusion> + </exclusions> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <artifactId>maven-failsafe-plugin</artifactId> + <configuration> + <skip>true</skip> + </configuration> + </plugin> + <plugin> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>build</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + + <profiles> + <profile> + <id>test-keycloak</id> + <activation> + <property> + <name>test-containers</name> + </property> + </activation> + <build> + <plugins> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <configuration> + <skip>false</skip> + <systemPropertyVariables> + <keycloak.url>${keycloak.url}</keycloak.url> + </systemPropertyVariables> + </configuration> + </plugin> + <plugin> + <artifactId>maven-failsafe-plugin</artifactId> + <configuration> + <skip>false</skip> + <systemPropertyVariables> + <keycloak.url>${keycloak.url}</keycloak.url> + </systemPropertyVariables> + </configuration> + </plugin> + <plugin> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>build</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>docker-keycloak</id> + <activation> + <property> + <name>start-containers</name> + </property> + </activation> + <properties> + <keycloak.url>http://localhost:8180/auth</keycloak.url> + </properties> + <build> + <plugins> + <plugin> + <groupId>io.fabric8</groupId> + <artifactId>docker-maven-plugin</artifactId> + <configuration> + <images> + <image> + <name>${keycloak.docker.legacy.image}</name> + <alias>quarkus-test-keycloak</alias> + <run> + <ports> + <port>8180:8080</port> + </ports> + <env> + <KEYCLOAK_USER>admin</KEYCLOAK_USER> + <KEYCLOAK_PASSWORD>admin</KEYCLOAK_PASSWORD> + </env> + <log> + <prefix>Keycloak:</prefix> + <date>default</date> + <color>cyan</color> + </log> + <wait> + <!-- good docs found at: https://dmp.fabric8.io/#build-healthcheck --> + <http> + <url>http://localhost:8180</url> + </http> + <time>100000</time> + </wait> + </run> + </image> + </images> + <allContainers>true</allContainers> + </configuration> + <executions> + <execution> + <id>docker-start</id> + <phase>compile</phase> + <goals> + <goal>stop</goal> + <goal>start</goal> + </goals> + </execution> + <execution> + <id>docker-stop</id> + <phase>post-integration-test</phase> + <goals> + <goal>stop</goal> + </goals> + </execution> + </executions> + </plugin> + <!--<plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <executions> + <execution> + <id>docker-prune</id> + <phase>generate-resources</phase> + <goals> + <goal>exec</goal> + </goals> + <configuration> + <executable>${basedir}/../../.github/docker-prune.sh</executable> + </configuration> + </execution> + </executions> + </plugin>--> + </plugins> + </build> + </profile> + </profiles> + +</project>
integration-tests/smallrye-graphql-client-keycloak/src/main/java/io/quarkus/io/smallrye/graphql/keycloak/GraphQLAuthExpiryTester.java+62 −0 added@@ -0,0 +1,62 @@ +package io.quarkus.io.smallrye.graphql.keycloak; + +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; + +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; + +import io.smallrye.common.annotation.Blocking; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClient; +import io.smallrye.graphql.client.dynamic.api.DynamicGraphQLClientBuilder; + +/** + * We can't perform these tests in the `@Test` methods directly, because the GraphQL client + * relies on CDI, and CDI is not available in native mode on the `@Test` side. + * Therefore the test only calls this REST endpoint which then performs all the client related work. + * <br> + * This test establishes connections to the server, and ensures that if authentication has an expiry, that following the + * expiry of their access the connection is correctly terminated. + */ +@Path("/") +public class GraphQLAuthExpiryTester { + + @GET + @Path("/dynamic-subscription-auth-expiry/{token}/{url}") + @Blocking + public void dynamicSubscription(@PathParam("token") String token, @PathParam("url") String url) + throws Exception { + DynamicGraphQLClientBuilder clientBuilder = DynamicGraphQLClientBuilder.newBuilder() + .url(url + "/graphql") + .header("Authorization", "Bearer " + token) + .executeSingleOperationsOverWebsocket(true); + + try (DynamicGraphQLClient client = clientBuilder.build()) { + CompletableFuture<Void> authenticationExpired = new CompletableFuture<>(); + AtomicBoolean receivedValue = new AtomicBoolean(false); + client.subscription("subscription { sub { value } }").subscribe().with(item -> { + if (item.hasData()) { + receivedValue.set(true); + } else { + authenticationExpired.completeExceptionally(new RuntimeException("Subscription provided no data")); + } + }, cause -> { + if (cause.getMessage().contains("Authentication expired")) { + authenticationExpired.complete(null); + } else { + authenticationExpired + .completeExceptionally(new RuntimeException("Invalid close response from server.", cause)); + } + }, () -> authenticationExpired + .completeExceptionally(new RuntimeException("Subscription should not complete successfully"))); + + authenticationExpired.get(10, TimeUnit.SECONDS); + if (!receivedValue.get()) { + throw new RuntimeException("Did not receive subscription value"); + } + } + } + +}
integration-tests/smallrye-graphql-client-keycloak/src/main/java/io/quarkus/io/smallrye/graphql/keycloak/SecuredResource.java+42 −0 added@@ -0,0 +1,42 @@ +package io.quarkus.io.smallrye.graphql.keycloak; + +import jakarta.annotation.security.RolesAllowed; + +import org.eclipse.microprofile.graphql.GraphQLApi; +import org.eclipse.microprofile.graphql.Query; + +import io.smallrye.common.annotation.NonBlocking; +import io.smallrye.graphql.api.Subscription; +import io.smallrye.mutiny.Multi; + +@GraphQLApi +public class SecuredResource { + + // Seems to be a requirement to have a query or mutation in a GraphQLApi. + // This is a workaround for the time being. + @Query + public TestResponse unusedQuery() { + return null; + } + + @Subscription + @RolesAllowed("user") + @NonBlocking + public Multi<TestResponse> sub() { + return Multi.createFrom().emitter(emitter -> emitter.emit(new TestResponse("Hello World"))); + } + + public static class TestResponse { + + private final String value; + + public TestResponse(String value) { + this.value = value; + } + + public String getValue() { + return value; + } + } + +}
integration-tests/smallrye-graphql-client-keycloak/src/main/resources/application.properties+4 −0 added@@ -0,0 +1,4 @@ +quarkus.oidc.client-id=quarkus-app +quarkus.oidc.credentials.secret=secret +quarkus.smallrye-graphql.log-payload=queryAndVariables +quarkus.keycloak.devservices.enabled=false
integration-tests/smallrye-graphql-client-keycloak/src/test/java/io/quarkus/it/smallrye/graphql/keycloak/GraphQLAuthExpiryIT.java+7 −0 added@@ -0,0 +1,7 @@ +package io.quarkus.it.smallrye.graphql.keycloak; + +import io.quarkus.test.junit.QuarkusIntegrationTest; + +@QuarkusIntegrationTest +public class GraphQLAuthExpiryIT extends GraphQLAuthExpiryTest { +}
integration-tests/smallrye-graphql-client-keycloak/src/test/java/io/quarkus/it/smallrye/graphql/keycloak/GraphQLAuthExpiryTest.java+33 −0 added@@ -0,0 +1,33 @@ +package io.quarkus.it.smallrye.graphql.keycloak; + +import static io.restassured.RestAssured.when; + +import java.net.URL; + +import org.junit.jupiter.api.Test; + +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.common.http.TestHTTPResource; +import io.quarkus.test.junit.QuarkusTest; + +/** + * See `GraphQLClientTester` for the actual testing code that uses GraphQL clients. + */ +@QuarkusTest +@QuarkusTestResource(KeycloakRealmResourceManager.class) +public class GraphQLAuthExpiryTest { + + @TestHTTPResource + URL url; + + @Test + public void testDynamicClientWebSocketAuthenticationExpiry() { + String token = KeycloakRealmResourceManager.getAccessToken(); + when() + .get("/dynamic-subscription-auth-expiry/" + token + "/" + url.toString()) + .then() + .log().everything() + .statusCode(204); + } + +}
integration-tests/smallrye-graphql-client-keycloak/src/test/java/io/quarkus/it/smallrye/graphql/keycloak/KeycloakRealmResourceManager.java+146 −0 added@@ -0,0 +1,146 @@ +package io.quarkus.it.smallrye.graphql.keycloak; + +import java.io.IOException; +import java.util.*; + +import org.keycloak.representations.AccessTokenResponse; +import org.keycloak.representations.idm.*; +import org.keycloak.util.JsonSerialization; +import org.testcontainers.containers.GenericContainer; + +import io.quarkus.test.common.QuarkusTestResourceLifecycleManager; +import io.restassured.RestAssured; +import io.restassured.response.Response; + +public class KeycloakRealmResourceManager implements QuarkusTestResourceLifecycleManager { + + private static final String KEYCLOAK_SERVER_URL = System.getProperty("keycloak.url", "http://localhost:8180/auth"); + //private static String KEYCLOAK_SERVER_URL; + private static final String KEYCLOAK_REALM = "quarkus"; + //private static final String KEYCLOAK_IMAGE = "quay.io/keycloak/keycloak:22.0.5"; + + private GenericContainer<?> keycloak; + + @Override + public Map<String, String> start() { + RealmRepresentation realm = createRealm(KEYCLOAK_REALM); + realm.setRevokeRefreshToken(true); + realm.setRefreshTokenMaxReuse(0); + realm.setAccessTokenLifespan(3); + + realm.getClients().add(createClient("quarkus-app")); + realm.getUsers().add(createUser("alice", "user")); + + try { + Response response = RestAssured + .given() + .auth().oauth2(getAdminAccessToken()) + .contentType("application/json") + .body(JsonSerialization.writeValueAsBytes(realm)) + .when() + .post(KEYCLOAK_SERVER_URL + "/admin/realms"); + response.then() + .statusCode(201); + + } catch (IOException e) { + throw new RuntimeException(e); + } + + Map<String, String> properties = new HashMap<>(); + + properties.put("quarkus.oidc.auth-server-url", KEYCLOAK_SERVER_URL + "/realms/" + KEYCLOAK_REALM); + properties.put("keycloak.url", KEYCLOAK_SERVER_URL); + + return properties; + } + + private static String getAdminAccessToken() { + return RestAssured + .given() + .param("grant_type", "password") + .param("username", "admin") + .param("password", "admin") + .param("client_id", "admin-cli") + .when() + .post(KEYCLOAK_SERVER_URL + "/realms/master/protocol/openid-connect/token") + .as(AccessTokenResponse.class).getToken(); + } + + private static RealmRepresentation createRealm(String name) { + RealmRepresentation realm = new RealmRepresentation(); + + realm.setRealm(name); + realm.setEnabled(true); + realm.setUsers(new ArrayList<>()); + realm.setClients(new ArrayList<>()); + realm.setAccessTokenLifespan(3); + realm.setSsoSessionMaxLifespan(3); + RolesRepresentation roles = new RolesRepresentation(); + List<RoleRepresentation> realmRoles = new ArrayList<>(); + + roles.setRealm(realmRoles); + realm.setRoles(roles); + + realm.getRoles().getRealm().add(new RoleRepresentation("user", null, false)); + realm.getRoles().getRealm().add(new RoleRepresentation("admin", null, false)); + + return realm; + } + + private static ClientRepresentation createClient(String clientId) { + ClientRepresentation client = new ClientRepresentation(); + + client.setClientId(clientId); + client.setPublicClient(false); + client.setSecret("secret"); + client.setDirectAccessGrantsEnabled(true); + client.setServiceAccountsEnabled(true); + client.setRedirectUris(Arrays.asList("*")); + client.setEnabled(true); + client.setDefaultClientScopes(List.of("microprofile-jwt")); + + return client; + } + + private static UserRepresentation createUser(String username, String... realmRoles) { + UserRepresentation user = new UserRepresentation(); + + user.setUsername(username); + user.setEnabled(true); + user.setCredentials(new ArrayList<>()); + user.setRealmRoles(Arrays.asList(realmRoles)); + user.setEmail(username + "@gmail.com"); + + CredentialRepresentation credential = new CredentialRepresentation(); + + credential.setType(CredentialRepresentation.PASSWORD); + credential.setValue(username); + credential.setTemporary(false); + + user.getCredentials().add(credential); + + return user; + } + + @Override + public void stop() { + RestAssured + .given() + .auth().oauth2(getAdminAccessToken()) + .when() + .delete(KEYCLOAK_SERVER_URL + "/admin/realms/" + KEYCLOAK_REALM).then().statusCode(204); + } + + public static String getAccessToken() { + io.restassured.response.Response response = RestAssured.given() + .contentType("application/x-www-form-urlencoded") + .accept("application/json") + .formParam("username", "alice") + .formParam("password", "alice") + .param("client_id", "quarkus-app") + .param("client_secret", "secret") + .formParam("grant_type", "password") + .post(KEYCLOAK_SERVER_URL + "/realms/" + KEYCLOAK_REALM + "/protocol/openid-connect/token"); + return response.getBody().jsonPath().getString("access_token"); + } +}
Vulnerability mechanics
Root cause
"GraphQL WebSocket request processing occurs before the authorization check, allowing unauthenticated access to secured operations."
Attack vector
An attacker can send a GraphQL operation over a WebSocket connection to a Quarkus endpoint that is secured with role-based permissions. Because the WebSocket request processing occurs before the authorization check [CWE-551], the server executes the operation without verifying the caller's identity or roles [CWE-862]. The attacker does not need to provide any authentication credentials; the request is processed as if it were authorized. This allows the attacker to access any GraphQL query, mutation, or subscription that lacks an explicit `@RolesAllowed` annotation, even when the endpoint itself is secured.
Affected code
The vulnerability lies in the SmallRye GraphQL WebSocket handling within the Quarkus extension `extensions/smallrye-graphql-client`. The patch commit message ("Fix GraphQL WebSocket handling occurring before authorization") indicates that WebSocket-based GraphQL requests were processed before the authorization check was performed. The fix introduces new integration tests (`integration-tests/smallrye-graphql-client-keycloak`) and unit tests (`DynamicGraphQLClientWebSocketAuthenticationTest.java`, `DynamicGraphQLClientWebSocketAuthenticationHttpPermissionsTest.java`) that validate proper authorization enforcement for WebSocket connections.
What the fix does
The patch [patch_id=1640462] reorders the processing of GraphQL WebSocket requests so that authorization is performed before the operation is executed. The commit message explicitly states "Fix GraphQL WebSocket handling occurring before authorization." New test classes (`DynamicGraphQLClientWebSocketAuthenticationTest.java`, `DynamicGraphQLClientWebSocketAuthenticationHttpPermissionsTest.java`) verify that authenticated users with the correct role can access secured operations, while unauthenticated users or users lacking the required role receive null data. The integration test module `integration-tests/smallrye-graphql-client-keycloak` adds end-to-end validation with Keycloak-based OIDC authentication to ensure the fix works in a realistic security context.
Preconditions
- configThe Quarkus application must expose GraphQL endpoints over WebSocket (e.g., using SmallRye GraphQL extension)
- configThe GraphQL endpoint must be secured (e.g., with @RolesAllowed annotations or HTTP authentication)
- networkThe attacker must be able to establish a WebSocket connection to the GraphQL endpoint
- authNo authentication credentials are required from the attacker to trigger the vulnerability
Generated on May 23, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
9- access.redhat.com/errata/RHSA-2023:7612ghsavendor-advisoryx_refsource_REDHATWEB
- access.redhat.com/errata/RHSA-2023:7700ghsavendor-advisoryx_refsource_REDHATWEB
- github.com/advisories/GHSA-mvc8-6ffp-jrx5ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2023-6394ghsaADVISORY
- access.redhat.com/security/cve/CVE-2023-6394ghsavdb-entryx_refsource_REDHATWEB
- bugzilla.redhat.com/show_bug.cgighsaissue-trackingx_refsource_REDHATWEB
- github.com/quarkusio/quarkus/pull/36961ghsaWEB
- github.com/quarkusio/quarkus/releases/tag/2.13.9.FinalghsaWEB
- github.com/quarkusio/quarkus/releases/tag/3.5.3ghsaWEB
News mentions
0No linked articles in our index yet.