Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No gRPC response when no separate server is used & quarkus-keycloak-authorization is present #34085

Closed
SivaM07 opened this issue Jun 16, 2023 · 17 comments · Fixed by #34559
Closed
Labels
area/grpc gRPC area/keycloak env/windows Impacts Windows machines kind/bug Something isn't working
Milestone

Comments

@SivaM07
Copy link
Contributor

SivaM07 commented Jun 16, 2023

Describe the bug

Combination of trying to use the same http vertx server for grpc and having keycloak-authorization, seems to break the flow and stopping actual grpc service implementation being invoked.

On debugging the only difference between with & without keycloack is that, when keycloak is present the HttpAuthorizer gets executed in a blocking fashion as a runnable and the subsequent grpc handler too gets executed on this executor thread instead of the eventloop thread.

Please suggest whether this a bug.
Happy to help with additional information if needed

Expected behavior

On setting quarkus.grpc.server.use-separate-server=false when keycloak-authorization is present, the security Identity to be validated via the HttpAuthorizer and respective grpc service implementation triggered and response returned.

Actual behavior

On setting quarkus.grpc.server.use-separate-server=false when keycloak-authorization is present, the security identity is validated via the HttpAuthorizer and gets validated.
Post which the grpc server handler and interceptors are invoked, but the grpc service implementation is not invoked.
Eventually no grpc response leaving the grpc client hanging.

How to Reproduce?

Reproducer:

  1. Use grpc-plain-text-quickstart
  2. Add property quarkus.grpc.server.use-separate-server=false
  3. Add quarkus-oidc & quarkus-keycloak-authorization dependency
  4. Copy the security configurations from security-keycloak-authorization-quickstart
  5. Generate a bearer token and add it as part of the grpc request ( I have used grpcul for this ./grpcurl -plaintext -H 'authorization: Bearer ${TOKEN}' -expand-headers -d '{"name":"test"}' -vv localhost:8080 helloworld.Greeter/sayHello

Output of uname -a or ver

Microsoft Windows [Version 10.0.22621.1778]

Output of java -version

openjdk version "11.0.11" 2021-04-20 OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9) OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

GraalVM version (if different from Java)

No response

Quarkus version or git rev

2.16.7.Final

Build tool (ie. output of mvnw --version or gradlew --version)

Apache Maven 3.8.6 (84538c9988a25aec085021c365c560670ad80f63)

Additional information

No response

@SivaM07 SivaM07 added the kind/bug Something isn't working label Jun 16, 2023
@quarkus-bot quarkus-bot bot added area/grpc gRPC area/keycloak env/windows Impacts Windows machines labels Jun 16, 2023
@quarkus-bot
Copy link

quarkus-bot bot commented Jun 16, 2023

/cc @alesj (grpc), @cescoffier (grpc), @pedroigor (keycloak), @sberyozkin (keycloak)

@sberyozkin
Copy link
Member

@SivaM07 Hi, I think this issue may be invalid because:

  • OIDC depends on the security architecture which is currently HTTP-centric
  • AFAIK, with GRPC and HTTP2, one can use only Basic and MTLS

But in any case, @alesj, please check

@cescoffier
Copy link
Member

I agree with @sberyozkin analysis. The current OIDC only works for HTTP 1.1 and not with gRPC (It may work with HTTP/2 but not when using gRPC).

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 18, 2023

@cescoffier @sberyozkin , Hi, issue doesn't seem to be with the OIDC module. On sending Bearer token as part of the grpc metadata, the existing HttpAuthenticator did pick up the right BearerAuthMechanism and extracted the token from the header and triggered the oidc flows to create the secuityIdentity.

Issue seems to be when used in combination with the keycloack extension, where the keycloack policy authorizer tries to execute things as a runnable in separate executor thread and leading to the grpc server handler too being ran on the executor thread instead of eventloop.

So basically OIDC + GRPC does work.
It kind of breaks when OIDC + Keycloak + GRPC is used.

As per logs, even the keycloak part went through successfully where it used the servicename/method name as URI and tried to retrieve the respective response. And passed over the flow to the grpc server handler.

As for as I have debug at this point, the difference I could find is the grpc handler did not get executed on the eventloop and even though the inbound buffer and the respective handler was triggered, the actual grpc service implementation was not triggered.

So my understanding is that with the new grpc on vertx http server, the oidc & keycloak does handle the HttpServerRequest and process them successfully and only the async part of HttpAuthorizer seems to impact the subsequent handlers like grpc server handler.

@sberyozkin
Copy link
Member

Hey @SivaM07 @cescoffier

On sending Bearer token as part of the grpc metadata, the existing HttpAuthenticator did pick up the right BearerAuthMechanism

Interesting, not sure why it works, my only theory is that HTTP/2 is auto-negotiated somehow, @stuartwdouglas suggested GRPC authentication should work over HTTP/2.

So my understanding is that with the new grpc on vertx http server, the oidc & keycloak does handle the HttpServerRequest and process them successfully and only the async part of HttpAuthorizer seems to impact the subsequent handlers like grpc server handler.

I suppose GRPC runtime needs to run after HTTP security check is complete, unfortunately I don't know much about GRPC or how GRPC and Vert.x HTTP can sync with each other. Vert.x HTTP recorder sets up the authentication filter before the service code is run, perhaps it should be tuned further it is run before GRPC service code is run

@cescoffier
Copy link
Member

With the new mechanism, gRPC is 'just' a route on the router. I can't see why it would happen before the authentication filter.

I would need to see a reproducer to debug.

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 19, 2023

@cescoffier @sberyozkin , grpc route did get invoked after the httpauthenticator and httpauthorizer handlers as expected.

The httpauthorizer executes in a blocking executor thread, post which the grpc route is invoked. At this point it seems to mess with the way the grpc request is played and eventually leading to the request getting lost and unhandled by the actual service implementation.

I am continuing to debug the difference, will share the details shortly.

@cescoffier
Copy link
Member

Ah ah, yes, good point. gRPC expects to be called on the I/O thread, and even need a duplicated context. With the previous server we were doing that work ourself, but with the new one, we considered that granted... but, nope, it's not always the case.

So, either we re-add the interceptor, or we make the authorizer send it's value on the captured event loop (and using a duplicated context). I would say that the later is more correct, and would avoid loosing tracing and other metadata stored in the duplicated context.

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 19, 2023

@cescoffier , yes given that you have got the essence of the problem here is there a workaround, may be to get httpauthorizer execute in the eventloop instead of on a blocking executor thread ? May be that might help the subsequent grpc flow too to execute on the eventloop.

Here is the reproducer project : https://github.com/SivaM07/quarkus-grpc-keycloak-reproducer-34085

This reproducer is composed of

  • grpc plaintext quickstart project
  • Added the property quarkus.grpc.server.use-separate-server=false
  • Added the oidc and keycloak dependencies
  • Copied over the application properties and config folder from keycloak quickstart project

Steps to reproduce the issue:

  • Post startup on the dev mode, open the keycloak (test container) admin page and navigate to the admin resources to add "/helloworld.Greeter/SayHello"
    image
  • Get the access token for admin user as described on the https://quarkus.io/guides/security-oidc-bearer-token-authentication-tutorial#test-the-application
  • Set the access token to TOKEN variable and invoke the grpc service using grpcurl tool
    ./grpcurl -plaintext -H 'authorization: Bearer ${TOKEN}' -expand-headers -d '{"name":"John Wick"}' -import-path '/quarkus/quarkus-grpc-keycloak-reproducer-34085/grpc-plain-text-quickstart/src/main/proto' -proto helloworld.proto -vv localhost:8080 helloworld.Greeter/SayHello

Observation:
Even though the debug logs of httpauthorizer mentions that the path access is granted, there wont be any response.

Note:
Post which if the same is retried with removing the keycloak dependency (which disables the httpauthorizer), we can observe successful response after authentication. On sending a invalid token we can also see the expected unauthenticated status response(This makes the authentication flow work as expected)

There is even a 403 response when tried after removing the grpc service name from the keycloak admin resources (which we have added).

Only in the flow where successful response is expected after a successful authorization, we don't receive a response at all.

@sberyozkin
Copy link
Member

@SivaM07 I'm not sure setting a Keycloak is needed if we want to prove Quarkus security and its HttpAuthorizer part in particular does not play well with GRPC. Quarkus Keycloak authorization is an instance of HttpSecurityPolicy, so having some test application scoped HttpSecurityPolicy bean should do.

In fact, Basic authentication and a custom HttpSecurityPolicy bean which would just return Allow should do it. No need to involve OIDC, keycloak-authorization, hopefully...

I guess we should be careful with changing the way HttpAuthorizer makes its decision available, to avoid affecting the performance for HTTP endpoints, hopefully won't be a problem. Also CC @michalvavrik @stuartwdouglas

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 20, 2023

@sberyozkin , this could be a blocking issue in scenarios where grpc (on same vertx http server) is added to an existing rest service using oidc and keycloak to secure the rest endpoint.

This is a valid usecase where we are trying to configure a grpc endpoint next to its equivalent rest endpoint in keycloak.

@sberyozkin
Copy link
Member

sberyozkin commented Jun 20, 2023

@SivaM07 I'm not saying the use case is invalid, I'm just trying to suggest a simpler reproducer. It does not matter for Quarkus Security how a given HttpSecurityPolicy is implemented, with quarkus-keycloak-authorization being just one such HttpSecurityPolicy instance, likewise, it does not have to be a token that has to be verified but a simpler setup with Basic authentication should do. It would be easier to test Basic Auth + a test HttpSecurityPolicy set up

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 20, 2023

@sberyozkin thanks for the clarification 🙂 I was trying to put up the scenario at which we are blocked currently.

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 21, 2023

@cescoffier @sberyozkin do you think this can be fixed ? I can contribute to this fix if there is any suggestion/direction on this.

@SivaM07
Copy link
Contributor Author

SivaM07 commented Jun 25, 2023

@alesj , if you can take a look at this one, if you have not done it already, that would be really great.

@cescoffier as a workaround, I tried to inject an handler to be executed right after the httpauthorizer. Which basically tried to execute the routingContext.next() on runOnContext if the context is not onEventLoopThread. And this seem to take the flow back to eventloopThread from the executor thread and execute the grpc service implementation with right input as expected.
Please let me know if you see any issues with this approach.
image

@michalvavrik
Copy link
Member

do you think this can be fixed ?

@SivaM07 this can be fixed and it is clear where the problem is as you yourself shown :-)

I can contribute to this fix if there is any suggestion/direction on this.

@cescoffier provided suggestion, but personally I am not able to assess impact of using duplicated context before I spend time on it.

@SivaM07 I'm not saying the use case is invalid, I'm just trying to suggest a simpler reproducer. It does not matter for Quarkus Security how a given HttpSecurityPolicy is implemented, with quarkus-keycloak-authorization being just one such HttpSecurityPolicy instance, likewise, it does not have to be a token that has to be verified but a simpler setup with Basic authentication should do. It would be easier to test Basic Auth + a test HttpSecurityPolicy set up

I agree it would be nice to have simpler reproducer, but KeycloakPolicyEnforcerAuthorizer is only policy running blocking I know about. Basic auth + custom policy should do though. @SivaM07 could you simplify reproducer, please? If not, no worry.

@michalvavrik
Copy link
Member

So, either we re-add the interceptor, or we make the authorizer send it's value on the captured event loop (and using a duplicated context). I would say that the later is more correct, and would avoid loosing tracing and other metadata stored in the duplicated context.

I gave a try to duplicated context @cescoffier and if I understand you suggestion right, it won't work. Here, blocking execution is run before Grpc route is invoked and so, we can't make authorized send a value on the captured event loop because it happens before Grpc route is invoked (proactive auth). I can see all interceptors running and then, on ready is invoked of SimpleForwardingServerCallListener from GrpcRequestContextGrpcInterceptor and that's the end. What fixed it was to invoke

on captured Vert.X context.

if (!Context.isOnEventLoopThread()) {
    Context capturedVertxContext = Vertx.currentContext();
    capturedVertxContext.runOnContext(new Handler<Void>() {
        @Override
        public void handle(Void unused) {
            server.handle(ctx.request());
        }
    });
} else {
    server.handle(ctx.request());
}

Unless I hear objections, I'll try to create simplified test and PR in the evening. Please let me know if you have better idea. Global interceptor should probably do as well.

@quarkus-bot quarkus-bot bot added this to the 3.3 - main milestone Jul 6, 2023
@gsmet gsmet modified the milestones: 3.3 - main, 3.2.1.Final Jul 18, 2023
benkard added a commit to benkard/mulkcms2 that referenced this issue Aug 7, 2023
This MR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [io.quarkus:quarkus-maven-plugin](https://github.com/quarkusio/quarkus) | build | major | `2.16.7.Final` -> `3.2.3.Final` |
| [io.quarkus:quarkus-universe-bom](https://github.com/quarkusio/quarkus-platform) | import | major | `2.16.7.Final` -> `3.2.3.Final` |

---

### Release Notes

<details>
<summary>quarkusio/quarkus</summary>

### [`v3.2.3.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.3.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.2.Final...3.2.3.Final)

##### Complete changelog

-   [#&#8203;35131](https://github.com/quarkusio/quarkus/pull/35131) - Unlist Security JPA Common
-   [#&#8203;35130](https://github.com/quarkusio/quarkus/pull/35130) - Also support Universe BOM
-   [#&#8203;35129](https://github.com/quarkusio/quarkus/pull/35129) - Support user methods with `@Transactional` in REST Data with Panache ORM
-   [#&#8203;35120](https://github.com/quarkusio/quarkus/pull/35120) - Upgrade to Hibernate Search 6.2.0.Final in Quarkus 3.2
-   [#&#8203;35119](https://github.com/quarkusio/quarkus/pull/35119) - Properly resolve `@TestProfile` when using nested tests in base classes
-   [#&#8203;35114](https://github.com/quarkusio/quarkus/pull/35114) - Keep META-INF/MANIFEST.MF in the bootstrap Gradle resolver artifact
-   [#&#8203;35112](https://github.com/quarkusio/quarkus/pull/35112) - Testing - fix MockitoConfig(convertScopes = true)
-   [#&#8203;35107](https://github.com/quarkusio/quarkus/issues/35107) - User methods requiring a transaction in Hibernate ORM does not work for interfaces of Panache REST Data extension
-   [#&#8203;35104](https://github.com/quarkusio/quarkus/issues/35104) - `@Nested` tests in a superclass do not work with test profiles
-   [#&#8203;35101](https://github.com/quarkusio/quarkus/pull/35101) - Docs: fix typo in duplicated context guide
-   [#&#8203;35087](https://github.com/quarkusio/quarkus/pull/35087) - Take into account container element constraints in config mapping validation
-   [#&#8203;35081](https://github.com/quarkusio/quarkus/issues/35081) - Email validator on collection element not found after upgrade to Quarkus 3
-   [#&#8203;35080](https://github.com/quarkusio/quarkus/issues/35080) - Mocking Singleton does not work even when using  `@MockitoConfig`(convertScopes = true)
-   [#&#8203;35067](https://github.com/quarkusio/quarkus/pull/35067) - Set analytics filter logs to debug
-   [#&#8203;35061](https://github.com/quarkusio/quarkus/pull/35061) - Fix join message in websocket quickstart
-   [#&#8203;35060](https://github.com/quarkusio/quarkus/pull/35060) - Add clear error message when Reactive REST Client used outside of Quarkus
-   [#&#8203;35059](https://github.com/quarkusio/quarkus/pull/35059) - Stylistic Loggin guide tweaks
-   [#&#8203;35057](https://github.com/quarkusio/quarkus/pull/35057) - Update graal-sdk to 23.0.1 to enable Java 11 compatibility
-   [#&#8203;35054](https://github.com/quarkusio/quarkus/issues/35054) - Upgrade graal-sdk version to 23.0.1
-   [#&#8203;35040](https://github.com/quarkusio/quarkus/pull/35040) - Fix Keycloak token address in OIDC DevUI script
-   [#&#8203;35029](https://github.com/quarkusio/quarkus/issues/35029) - Keycloak dev services uses wrong token url for client_credentials grant type
-   [#&#8203;35022](https://github.com/quarkusio/quarkus/pull/35022) - Fixing and adding missing abstracts in the Logging guide
-   [#&#8203;35015](https://github.com/quarkusio/quarkus/pull/35015) - Limit `List` transformation in Spring DI module
-   [#&#8203;35013](https://github.com/quarkusio/quarkus/pull/35013) - Fix sidecars resource requirements properties in Kubernetes
-   [#&#8203;35011](https://github.com/quarkusio/quarkus/issues/35011) - `@ConfigProperty` injection semantics change when `quarkus-spring-di` is present and `@Inject` is used (regression in Quarkus 3)
-   [#&#8203;35009](https://github.com/quarkusio/quarkus/pull/35009) - Upgrade to SmallRye Fault Tolerance 6.2.6
-   [#&#8203;35006](https://github.com/quarkusio/quarkus/issues/35006) - quarkus-kubernetes Extension ignores multiple sidecars properties
-   [#&#8203;35005](https://github.com/quarkusio/quarkus/pull/35005) - Fix OIDC token verification failure message
-   [#&#8203;34999](https://github.com/quarkusio/quarkus/pull/34999) - Allow to exclude classes in REST Data with Panache with annotations
-   [#&#8203;34997](https://github.com/quarkusio/quarkus/pull/34997) - Document HttpServerOptionsCustomizer
-   [#&#8203;34994](https://github.com/quarkusio/quarkus/pull/34994) - OIDC UserInfo request must not be made if the token verification fails
-   [#&#8203;34993](https://github.com/quarkusio/quarkus/issues/34993) - OIDC UserInfo endpoint is called even if the token verification fails
-   [#&#8203;34992](https://github.com/quarkusio/quarkus/issues/34992) - Document usage of `HttpServerOptionsCustomizer`
-   [#&#8203;34991](https://github.com/quarkusio/quarkus/pull/34991) - Upgrade to Hibernate ORM 6.2.7.Final and Hibernate Reactive 2.0.4.Final
-   [#&#8203;34987](https://github.com/quarkusio/quarkus/pull/34987) - Ensure Kubernetes manifests are generated in the project location
-   [#&#8203;34986](https://github.com/quarkusio/quarkus/issues/34986) - Quarkus is affected by criteria query issue in Hibernate
-   [#&#8203;34952](https://github.com/quarkusio/quarkus/pull/34952) - Logging configuration stylistic review
-   [#&#8203;34951](https://github.com/quarkusio/quarkus/pull/34951) - Improve Javadoc of `@CustomSerialization`
-   [#&#8203;34948](https://github.com/quarkusio/quarkus/pull/34948) - Apply JavaPlugin on the deployment project
-   [#&#8203;34945](https://github.com/quarkusio/quarkus/pull/34945) - Fix Openshift deployments when using a custom output directory
-   [#&#8203;34944](https://github.com/quarkusio/quarkus/pull/34944) - Backport: Add option to produce PIE native binaries
-   [#&#8203;34938](https://github.com/quarkusio/quarkus/issues/34938) - `@UnlessBuildProperty` is ignored on PanacheEntityResource
-   [#&#8203;34936](https://github.com/quarkusio/quarkus/pull/34936) - Update RabbitMQ DevServices container to 3.12
-   [#&#8203;34917](https://github.com/quarkusio/quarkus/pull/34917) - Fix issue of e.getCause() returns null
-   [#&#8203;34906](https://github.com/quarkusio/quarkus/pull/34906) - Allow the use of HTTP2 in programmatically created REST Client
-   [#&#8203;34904](https://github.com/quarkusio/quarkus/pull/34904) - Dev UI Scheduler: Fix screen height
-   [#&#8203;34896](https://github.com/quarkusio/quarkus/issues/34896) - Quarkus resteasy-reactive (RestClientBuilder) HTTP2
-   [#&#8203;34894](https://github.com/quarkusio/quarkus/pull/34894) - Upgrade logstash-gelf to 1.15.1 and add it to dependabot
-   [#&#8203;34886](https://github.com/quarkusio/quarkus/pull/34886) - Fix http.route tracing attribute reporting
-   [#&#8203;34860](https://github.com/quarkusio/quarkus/pull/34860) - Proper ordering of the handlers chapters and addition of some examples in the Logging guide
-   [#&#8203;34857](https://github.com/quarkusio/quarkus/pull/34857) - Make sure links starting with attributes are identifiable
-   [#&#8203;34827](https://github.com/quarkusio/quarkus/issues/34827) - `quarkus.kubernetes.output-directory` is not (always) relative to project location
-   [#&#8203;34826](https://github.com/quarkusio/quarkus/pull/34826) - Fix build analytics documentation - payload example
-   [#&#8203;34778](https://github.com/quarkusio/quarkus/issues/34778) - Observability for HTTP Server - when http route is / then attribute 'http.route' is not sent
-   [#&#8203;34737](https://github.com/quarkusio/quarkus/pull/34737) - Avoid ambiguous use of 'Panache' in 'Logging with Panache'
-   [#&#8203;34703](https://github.com/quarkusio/quarkus/issues/34703) - Ignored projects also ask about build analytics
-   [#&#8203;34673](https://github.com/quarkusio/quarkus/issues/34673) - Openshift extension does not see kubernetes resources in custom location
-   [#&#8203;34671](https://github.com/quarkusio/quarkus/pull/34671) - Hibernate Reactive Panache: open session on demand for repositories
-   [#&#8203;34615](https://github.com/quarkusio/quarkus/pull/34615) - Bump h2 from 2.1.214 to 2.2.220 in /bom/application
-   [#&#8203;34542](https://github.com/quarkusio/quarkus/pull/34542) - Fix user methods requiring a session in Panache REST Data with Reactive
-   [#&#8203;34511](https://github.com/quarkusio/quarkus/pull/34511) - Duplicated context concept guide
-   [#&#8203;34432](https://github.com/quarkusio/quarkus/issues/34432) - User methods requiring a session in Hibernate Reactive does not work for interfaces of Panache REST Data extension
-   [#&#8203;34359](https://github.com/quarkusio/quarkus/pull/34359) - Add a section about MDC to the logging documentation

### [`v3.2.2.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.2.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.1.Final...3.2.2.Final)

##### Complete changelog

-   [#&#8203;34882](https://github.com/quarkusio/quarkus/pull/34882) - Revert to openjdk-17-runtime:1.16 images
-   [#&#8203;34881](https://github.com/quarkusio/quarkus/issues/34881) - Quarkus 3.2.1 openjdk base image tag
-   [#&#8203;34874](https://github.com/quarkusio/quarkus/pull/34874) - Properly return HTTP 406 on invalid Accept header
-   [#&#8203;34859](https://github.com/quarkusio/quarkus/pull/34859) - Remove false positive warning about quarkus.launch.rebuild
-   [#&#8203;34858](https://github.com/quarkusio/quarkus/issues/34858) - Treat incorrect Accept header as a user error
-   [#&#8203;34856](https://github.com/quarkusio/quarkus/pull/34856) - Fix unrecognised property
-   [#&#8203;34832](https://github.com/quarkusio/quarkus/pull/34832) - Bump io.smallrye.config:smallrye-config-source-yaml from 3.3.0 to 3.3.2 in /devtools/gradle
-   [#&#8203;34825](https://github.com/quarkusio/quarkus/issues/34825) - quarkus.analytics.uri.base unrecognized by build time analytics
-   [#&#8203;34815](https://github.com/quarkusio/quarkus/issues/34815) - Unrecognized configuration key "quarkus.launch.rebuild" reported when re-augmenting the application
-   [#&#8203;34814](https://github.com/quarkusio/quarkus/pull/34814) - Update SmallRye Config to 3.3.2
-   [#&#8203;34805](https://github.com/quarkusio/quarkus/pull/34805) - Fix container builds when explicitly setting `container-runtime`
-   [#&#8203;34725](https://github.com/quarkusio/quarkus/issues/34725) - Native image building fails when using podman
-   [#&#8203;34722](https://github.com/quarkusio/quarkus/pull/34722) - Make Snappy optional in JVM mode
-   [#&#8203;34699](https://github.com/quarkusio/quarkus/pull/34699) - Documenting a possibility to store transaction logs to a database
-   [#&#8203;34670](https://github.com/quarkusio/quarkus/issues/34670) - Make loading Snappy truly optional
-   [#&#8203;34631](https://github.com/quarkusio/quarkus/pull/34631) - Allow reauthentication if the OIDC state cookie is not matched
-   [#&#8203;34630](https://github.com/quarkusio/quarkus/issues/34630) - Make OIDC state handling more flexible

### [`v3.2.1.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.1.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.2.0.Final...3.2.1.Final)

##### Major changes

-   [#&#8203;34662](https://github.com/quarkusio/quarkus/pull/34662) - Add OpenAPI to management interface if enabled, with option to exclude

##### Complete changelog

-   [#&#8203;34809](https://github.com/quarkusio/quarkus/pull/34809) - Fix path segment handling of encoded values
-   [#&#8203;34804](https://github.com/quarkusio/quarkus/pull/34804) - Encode multi char code points correctly in RestEasy Reactive
-   [#&#8203;34802](https://github.com/quarkusio/quarkus/pull/34802) - Fail when GraalVM / Mandrel version detection fails
-   [#&#8203;34795](https://github.com/quarkusio/quarkus/pull/34795) - Discover all the project modules from all the Maven profiles by default
-   [#&#8203;34794](https://github.com/quarkusio/quarkus/pull/34794) - Improve jar resources' release robustness
-   [#&#8203;34789](https://github.com/quarkusio/quarkus/pull/34789) - Avoid race condition on adding content-length header
-   [#&#8203;34787](https://github.com/quarkusio/quarkus/issues/34787) - Quarkus Maven plugin is unable to resolve local deps when generating code tests
-   [#&#8203;34783](https://github.com/quarkusio/quarkus/pull/34783) - Stork - Removing out of date content and link upstream documentation
-   [#&#8203;34775](https://github.com/quarkusio/quarkus/pull/34775) - DevMojo warnIfBuildGoalMissing parameter to be able to supress the warning about missing build goal
-   [#&#8203;34774](https://github.com/quarkusio/quarkus/pull/34774) - Fixed workspace loading in dev mode when POM manipulaing plugins store POM files outside project directories
-   [#&#8203;34773](https://github.com/quarkusio/quarkus/pull/34773) - Add another hint how to decrease OIDC session cookie size
-   [#&#8203;34772](https://github.com/quarkusio/quarkus/pull/34772) - Remove token customizer from OIDC Microsoft provider
-   [#&#8203;34764](https://github.com/quarkusio/quarkus/issues/34764) - Quarkus Maven Plugin doubles up the /target folder when used with Flatten Plugin
-   [#&#8203;34753](https://github.com/quarkusio/quarkus/pull/34753) - Fix null logger
-   [#&#8203;34752](https://github.com/quarkusio/quarkus/pull/34752) - Align Vert.x version in RESTEasy Reactive with Quarkus
-   [#&#8203;34746](https://github.com/quarkusio/quarkus/pull/34746) - Properly implement redirection in REST Client for 307 responses
-   [#&#8203;34743](https://github.com/quarkusio/quarkus/pull/34743) - OIDC DEV UI - small alignment and width adjustments
-   [#&#8203;34739](https://github.com/quarkusio/quarkus/pull/34739) - Move DevUI Config resolution to Runtime
-   [#&#8203;34732](https://github.com/quarkusio/quarkus/issues/34732) - `ID token verification has failed: null` after upgrade from 3.1.0 -> 3.2.0
-   [#&#8203;34729](https://github.com/quarkusio/quarkus/issues/34729) - CVE-2023-2974 is reported in quarkus-core which does not allow our pipeline to complete
-   [#&#8203;34726](https://github.com/quarkusio/quarkus/pull/34726) - ArC: improve documentation on supported CDI features and limitations
-   [#&#8203;34720](https://github.com/quarkusio/quarkus/pull/34720) - Support serialization of class fields with Jackson in native
-   [#&#8203;34717](https://github.com/quarkusio/quarkus/issues/34717) - Failed to execute goal io.quarkus.platform:quarkus-maven-plugin:3.2.0.Final:generate-code
-   [#&#8203;34709](https://github.com/quarkusio/quarkus/pull/34709) - Support `@ConfigMapping` inheritance doc generation
-   [#&#8203;34707](https://github.com/quarkusio/quarkus/pull/34707) - Remove a class that wasn't meant to be added
-   [#&#8203;34702](https://github.com/quarkusio/quarkus/pull/34702) - Properly populate metrics uri in presence of auth failures
-   [#&#8203;34694](https://github.com/quarkusio/quarkus/issues/34694) - ClassSerializer missing its default no arg constructor in native mode
-   [#&#8203;34689](https://github.com/quarkusio/quarkus/pull/34689) - Ban only unavailable config services when initializing config in CodeGenerator
-   [#&#8203;34685](https://github.com/quarkusio/quarkus/pull/34685) - Allow override of dev services props by integration test extensions
-   [#&#8203;34683](https://github.com/quarkusio/quarkus/pull/34683) - Docfix: create multiple named reactive datasources is supported
-   [#&#8203;34682](https://github.com/quarkusio/quarkus/pull/34682) - Upgrade Hibernate Reactive to 2.0.3.Final
-   [#&#8203;34678](https://github.com/quarkusio/quarkus/pull/34678) - Don't mask deployment target from the CLI
-   [#&#8203;34675](https://github.com/quarkusio/quarkus/issues/34675) - quarkus deploy --openshift ignores quarkus.openshift.deployment-kind=Deployment
-   [#&#8203;34665](https://github.com/quarkusio/quarkus/pull/34665) - Docs: fix example snippet for VertxContextSupport
-   [#&#8203;34662](https://github.com/quarkusio/quarkus/pull/34662) - Add OpenAPI to management interface if enabled, with option to exclude
-   [#&#8203;34661](https://github.com/quarkusio/quarkus/pull/34661) - Bump sshd-common from 2.9.2 to 2.10.0 in /bom/application
-   [#&#8203;34658](https://github.com/quarkusio/quarkus/pull/34658) - Fix import issues in qute documentation examples
-   [#&#8203;34655](https://github.com/quarkusio/quarkus/pull/34655) - Refactor Hibernate mapping to use groups instead of dotted names
-   [#&#8203;34649](https://github.com/quarkusio/quarkus/pull/34649) - Fix OIDC DEV UI Live Reload
-   [#&#8203;34644](https://github.com/quarkusio/quarkus/issues/34644) - Rest client running GET requests instead of POST after redirect
-   [#&#8203;34642](https://github.com/quarkusio/quarkus/issues/34642) - Live Reload stopped working since 3.2.0.CR1
-   [#&#8203;34641](https://github.com/quarkusio/quarkus/pull/34641) - Don't load remote build analytics config if user has not accepted
-   [#&#8203;34632](https://github.com/quarkusio/quarkus/issues/34632) - Resteasy Reactive: Server becomes unresponsive due to race condition on ContainerResponseContext.getEntityStream()
-   [#&#8203;34629](https://github.com/quarkusio/quarkus/pull/34629) - Add QuarkusApplication javadoc
-   [#&#8203;34628](https://github.com/quarkusio/quarkus/issues/34628) - Quarkus 3.2: Hibernate ORM configuration problem
-   [#&#8203;34626](https://github.com/quarkusio/quarkus/issues/34626) - Quarkus 3.2.0.Final fetching build analytics remote config when disabled
-   [#&#8203;34625](https://github.com/quarkusio/quarkus/pull/34625) - Add hint for migration of servlets for RESTEasy Reactive
-   [#&#8203;34612](https://github.com/quarkusio/quarkus/pull/34612) - DevServices for Keycloak should support refresh token grant
-   [#&#8203;34610](https://github.com/quarkusio/quarkus/pull/34610) - Do not refresh OIDC session if the user is requesting logout
-   [#&#8203;34606](https://github.com/quarkusio/quarkus/pull/34606) - Timeout message for build analytics
-   [#&#8203;34601](https://github.com/quarkusio/quarkus/issues/34601) - zip file closed errors
-   [#&#8203;34593](https://github.com/quarkusio/quarkus/pull/34593) - Dev UI: Add Extension name in header page
-   [#&#8203;34592](https://github.com/quarkusio/quarkus/issues/34592) - OIDC Logout doesn't work after 5 minutes
-   [#&#8203;34586](https://github.com/quarkusio/quarkus/issues/34586) - Invalid handling of path segments in URLs by "quarkus-resteasy-reactive"
-   [#&#8203;34583](https://github.com/quarkusio/quarkus/pull/34583) - Ban all services from SmallRyeConfig in CodeGenerator
-   [#&#8203;34581](https://github.com/quarkusio/quarkus/pull/34581) - OpenTelemetry service name should have higher priority than app name and resource attribute service name
-   [#&#8203;34570](https://github.com/quarkusio/quarkus/pull/34570) - Prevent build failure when `@Blocking` on Application
-   [#&#8203;34566](https://github.com/quarkusio/quarkus/pull/34566) - Bump microprofile-openapi-api from 3.1 to 3.1.1
-   [#&#8203;34564](https://github.com/quarkusio/quarkus/pull/34564) - Bump smallrye-jwt.version from 4.2.1 to 4.3.0
-   [#&#8203;34559](https://github.com/quarkusio/quarkus/pull/34559) - Grpc: Fix hanging when Keycloak authorizer blocks thread and response never arrives
-   [#&#8203;34541](https://github.com/quarkusio/quarkus/pull/34541) - Fix error message about JDBC instrumentation
-   [#&#8203;34539](https://github.com/quarkusio/quarkus/pull/34539) - Prevent invalid warnings when setting `@QuarkusIntegrationTest` related properties
-   [#&#8203;34533](https://github.com/quarkusio/quarkus/pull/34533) - DevMojo: align Maven goal invocation logging with Maven 3.9 style
-   [#&#8203;34528](https://github.com/quarkusio/quarkus/pull/34528) - Fix Maven auth issue due to a classpath mix up
-   [#&#8203;34523](https://github.com/quarkusio/quarkus/pull/34523) - Fix notifications when reindexing the default PU through the dev UI
-   [#&#8203;34521](https://github.com/quarkusio/quarkus/pull/34521) - Track exceptions thrown during JAX-RS processing in the current span
-   [#&#8203;34520](https://github.com/quarkusio/quarkus/pull/34520) - Invoke secured blocking Grpc methods on worker thread
-   [#&#8203;34510](https://github.com/quarkusio/quarkus/pull/34510) - Enhance OpenTelemetry's DropTargetsSampler
-   [#&#8203;34509](https://github.com/quarkusio/quarkus/pull/34509) - Upgrade to Maven 3.9.3
-   [#&#8203;34508](https://github.com/quarkusio/quarkus/pull/34508) - Fix typo in InjectMock javadoc
-   [#&#8203;34507](https://github.com/quarkusio/quarkus/pull/34507) - Add SSL Support to integration test
-   [#&#8203;34502](https://github.com/quarkusio/quarkus/issues/34502) - Add support to run QuarkusIntegrationTest against https
-   [#&#8203;34499](https://github.com/quarkusio/quarkus/pull/34499) - Simplify and improve OIDC PKCE secret initialization
-   [#&#8203;34494](https://github.com/quarkusio/quarkus/pull/34494) - Restore ENTRYPOINT in Dockerfile templates
-   [#&#8203;34490](https://github.com/quarkusio/quarkus/pull/34490) - Make sure settings-security.xml is picked up from ~/.m2 if exists
-   [#&#8203;34484](https://github.com/quarkusio/quarkus/pull/34484) - Update OIDC DevUI doc with new DevUI images
-   [#&#8203;34482](https://github.com/quarkusio/quarkus/pull/34482) - Build Analytics - prompt improvements
-   [#&#8203;34481](https://github.com/quarkusio/quarkus/pull/34481) - ArC: fix possible StringIndexOutOfBoundsException in ArcJsonRPCService
-   [#&#8203;34478](https://github.com/quarkusio/quarkus/pull/34478) - Make plugin syncing log debug
-   [#&#8203;34474](https://github.com/quarkusio/quarkus/pull/34474) - Fix span export issue when user provided SpanProcessor beans exist
-   [#&#8203;34471](https://github.com/quarkusio/quarkus/pull/34471) - The Common Log Format requires the date to be wrapped into `[]`
-   [#&#8203;34468](https://github.com/quarkusio/quarkus/pull/34468) - Enforce the configured TLS version
-   [#&#8203;34466](https://github.com/quarkusio/quarkus/issues/34466) - DevUIArcJsonRPCTest.testInvocations unstable
-   [#&#8203;34463](https://github.com/quarkusio/quarkus/issues/34463) - QuarkusApplication Simple JavaDoc
-   [#&#8203;34458](https://github.com/quarkusio/quarkus/pull/34458) - Fix a typo in hibernate-reactive-panache.adoc
-   [#&#8203;34454](https://github.com/quarkusio/quarkus/pull/34454) - An option to attach an Uber JAR as the main project artifact
-   [#&#8203;34452](https://github.com/quarkusio/quarkus/pull/34452) - Fix Hibernate NoSuchMethod Exception  when TenantIdGeneration used in Quarkus 3 native mode
-   [#&#8203;34450](https://github.com/quarkusio/quarkus/pull/34450) - Support multiple backchannel logout tokens
-   [#&#8203;34449](https://github.com/quarkusio/quarkus/pull/34449) - Refactor BuildTimeConfigurationReader to make it easy to initialize a config outside ExtensionLoader
-   [#&#8203;34448](https://github.com/quarkusio/quarkus/issues/34448) - Failure to pull non-cached deps during test launch with proxy private repository
-   [#&#8203;34444](https://github.com/quarkusio/quarkus/pull/34444) - Fix extra registry config merging
-   [#&#8203;34443](https://github.com/quarkusio/quarkus/issues/34443) - Quarkus 3 native image fail to start with NoSuchMethod Exception
-   [#&#8203;34442](https://github.com/quarkusio/quarkus/issues/34442) - OIDC BackChannel Logout is not production ready
-   [#&#8203;34441](https://github.com/quarkusio/quarkus/pull/34441) - Upgrade to Hibernate ORM 6.2.6.Final, Hibernate Reactive 2.0.2.Final
-   [#&#8203;34440](https://github.com/quarkusio/quarkus/pull/34440) - Attach renamed original JAR to the Maven project to keep install plugin working
-   [#&#8203;34439](https://github.com/quarkusio/quarkus/issues/34439) - Quarkus gRPC `@Blocking` service bug (wrong kind of thread) with `@RolesAllowed`
-   [#&#8203;34433](https://github.com/quarkusio/quarkus/pull/34433) - Use debug logging for catalog initialization message
-   [#&#8203;34431](https://github.com/quarkusio/quarkus/pull/34431) - Prevent implicit image push when image build is explicitly disabled
-   [#&#8203;34425](https://github.com/quarkusio/quarkus/pull/34425) - Documentation: Native testing, fix typo
-   [#&#8203;34414](https://github.com/quarkusio/quarkus/pull/34414) - Improve generic resolution support in Spring Data JPA
-   [#&#8203;34413](https://github.com/quarkusio/quarkus/issues/34413) - deploy commnad incorrectly trigger image build
-   [#&#8203;34405](https://github.com/quarkusio/quarkus/pull/34405) - Fix typo in ResponseHeader annotation
-   [#&#8203;34404](https://github.com/quarkusio/quarkus/pull/34404) - Fix typo in imports of sample in resteasy-reactive-client doc
-   [#&#8203;34388](https://github.com/quarkusio/quarkus/issues/34388) - Provide possibility to run ./mvnw install with uber-jar creation, without renaming the uber-jar artefact
-   [#&#8203;34385](https://github.com/quarkusio/quarkus/issues/34385) - Bad command in documentation
-   [#&#8203;34383](https://github.com/quarkusio/quarkus/pull/34383) - Update ubi and openjdk-17-runtime images
-   [#&#8203;34376](https://github.com/quarkusio/quarkus/issues/34376) - swagger-ui endpoint is traced by OTel
-   [#&#8203;34374](https://github.com/quarkusio/quarkus/pull/34374) - Recover Kubernetes connection after watching builds logs timeout in OCP
-   [#&#8203;34373](https://github.com/quarkusio/quarkus/pull/34373) - Remove duplicate property kotlin.coroutine.version from application BOM
-   [#&#8203;34370](https://github.com/quarkusio/quarkus/issues/34370) - Quarkus is uing ubi8/ubi-minimal:8.6 and openjdk-17-runtime:1.15 while newer versions are available
-   [#&#8203;34368](https://github.com/quarkusio/quarkus/pull/34368) - Docs - describe authentication challenge in security architecture concept guide
-   [#&#8203;34366](https://github.com/quarkusio/quarkus/pull/34366) - Docs - configuration reference - environment variables
-   [#&#8203;34358](https://github.com/quarkusio/quarkus/pull/34358) - Updates Infinispan to 14.0.11.Final
-   [#&#8203;34353](https://github.com/quarkusio/quarkus/issues/34353) - OpenApi and SwaggerUi exposed on service port instead of management port
-   [#&#8203;34350](https://github.com/quarkusio/quarkus/issues/34350) - Spring Data API Extension Interface Projections not working with generic interfaces
-   [#&#8203;34347](https://github.com/quarkusio/quarkus/issues/34347) - Unable to pass command arguments to docker image in command line mode
-   [#&#8203;34336](https://github.com/quarkusio/quarkus/pull/34336) - ArC: fix constructor injection for abstract decorators
-   [#&#8203;34276](https://github.com/quarkusio/quarkus/issues/34276) - Openshift extension fails to deploy when on RHEL
-   [#&#8203;34175](https://github.com/quarkusio/quarkus/issues/34175) - Dev UI Documentation update for Security
-   [#&#8203;34146](https://github.com/quarkusio/quarkus/issues/34146) - BlockingOperationNotAllowedException in GRPC when using authentication
-   [#&#8203;34144](https://github.com/quarkusio/quarkus/pull/34144) - Remove usages of `@AlwaysInline`
-   [#&#8203;34141](https://github.com/quarkusio/quarkus/issues/34141) - Remove usage of `@AlwaysInline` as it's not GraalVM API
-   [#&#8203;34128](https://github.com/quarkusio/quarkus/pull/34128) - Complete review for the Logging reference guide
-   [#&#8203;34085](https://github.com/quarkusio/quarkus/issues/34085) - No gRPC response when no separate server is used & quarkus-keycloak-authorization is present
-   [#&#8203;34069](https://github.com/quarkusio/quarkus/pull/34069) - Improve config documentation generation for mappings
-   [#&#8203;33945](https://github.com/quarkusio/quarkus/issues/33945) - Dev-ui config editor not showing config values changed by a ConfigSourceInterceptor
-   [#&#8203;33889](https://github.com/quarkusio/quarkus/issues/33889) - Panache LockModeType ignored since 3.1.1
-   [#&#8203;33567](https://github.com/quarkusio/quarkus/issues/33567) - Custom ConfigSource not working with extensions that implement CodeGenProvider
-   [#&#8203;33446](https://github.com/quarkusio/quarkus/pull/33446) - Pass additional parameters to podman/docker on MacOS
-   [#&#8203;33407](https://github.com/quarkusio/quarkus/issues/33407) - OpenTelemetry custom SpanProcessor doesn't work in native mode
-   [#&#8203;33317](https://github.com/quarkusio/quarkus/issues/33317) - OpenTelemetry SDK autoconfiguration ignores OTEL service name in favor of Quarkus app name
-   [#&#8203;33188](https://github.com/quarkusio/quarkus/issues/33188) - Podman fails to build native on macOS
-   [#&#8203;33115](https://github.com/quarkusio/quarkus/issues/33115) - Quarkus maven plugin 3.0.1.Final artifact upload broken, Authentication failure in Azure Devops
-   [#&#8203;31010](https://github.com/quarkusio/quarkus/issues/31010) - HTTP access log %t missing enclosing brackets
-   [#&#8203;30802](https://github.com/quarkusio/quarkus/issues/30802) - OIDC: Generate PKCE secret 32 chars long if it is not set and the client secret is not 32 chars long
-   [#&#8203;30462](https://github.com/quarkusio/quarkus/issues/30462) - Bug/OpenTelemetry extension - unexpected exceptions are not recorded on the span
-   [#&#8203;27452](https://github.com/quarkusio/quarkus/issues/27452) - Fix TODO in DropTargetsSampler.java
-   [#&#8203;27384](https://github.com/quarkusio/quarkus/issues/27384) - OpenTelemetry: server spans of failed requests have no exception event
-   [#&#8203;24938](https://github.com/quarkusio/quarkus/issues/24938) - Micrometer URI templating does not apply for unauthorized requests
-   [#&#8203;10134](https://github.com/quarkusio/quarkus/issues/10134) - MicroProfile RestClient Encoding Failing for Emojis

### [`v3.2.0.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.2.0.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.3.Final...3.2.0.Final)

##### Major changes

-   [#&#8203;34227](https://github.com/quarkusio/quarkus/pull/34227) - Support custom claim types in quarkus-test-security-jwt and quarkus-test-security-oidc

##### Complete changelog

-   [#&#8203;34345](https://github.com/quarkusio/quarkus/pull/34345) - Add a section about march (graalvm 23+)
-   [#&#8203;34344](https://github.com/quarkusio/quarkus/pull/34344) - Small doc adjustments noticed when backporting recent MRs
-   [#&#8203;34340](https://github.com/quarkusio/quarkus/pull/34340) - Styling edits to security proactive auth docs
-   [#&#8203;34338](https://github.com/quarkusio/quarkus/pull/34338) - Build analytics - Improvements III
-   [#&#8203;34337](https://github.com/quarkusio/quarkus/pull/34337) - Fix typo & minor edits to security NVD doc
-   [#&#8203;34325](https://github.com/quarkusio/quarkus/pull/34325) - Add support for java.time.Year as JAX-RS parameter
-   [#&#8203;34324](https://github.com/quarkusio/quarkus/issues/34324) - resteasy-reactive java.time.Year ParamConverter
-   [#&#8203;34321](https://github.com/quarkusio/quarkus/pull/34321) - Inconsistent `Bearer token  authentication` in docs
-   [#&#8203;34320](https://github.com/quarkusio/quarkus/pull/34320) - Minor doc enhancements to Security Basic Auth docs
-   [#&#8203;34317](https://github.com/quarkusio/quarkus/pull/34317) - Minor doc enhancements to Identity providers
-   [#&#8203;34313](https://github.com/quarkusio/quarkus/pull/34313) - Filter out disabled REST methods from the OpenAPI document
-   [#&#8203;34290](https://github.com/quarkusio/quarkus/pull/34290) - Add more links between OIDC bearer and code flow authentication docs
-   [#&#8203;34288](https://github.com/quarkusio/quarkus/pull/34288) - Remove "-concept" from doc filenames and IDs
-   [#&#8203;34287](https://github.com/quarkusio/quarkus/pull/34287) - Style edits to "Authorization of web endpoints" Security ref doc
-   [#&#8203;34286](https://github.com/quarkusio/quarkus/pull/34286) - Make sure snapshot artifacts available in both workspace and remote repos are resolved from workspace in dev mode
-   [#&#8203;34280](https://github.com/quarkusio/quarkus/pull/34280) - Bump dekorate.version from 3.6.1 to 3.7.0
-   [#&#8203;34278](https://github.com/quarkusio/quarkus/pull/34278) - Describe how you can serve static files with a Vert.x route
-   [#&#8203;34275](https://github.com/quarkusio/quarkus/pull/34275) - Add extension suggestion in management interface reference
-   [#&#8203;34274](https://github.com/quarkusio/quarkus/pull/34274) - Build analytics - Improvements II
-   [#&#8203;34266](https://github.com/quarkusio/quarkus/pull/34266) - Make further updates to the update guide in the community and product docs so they match
-   [#&#8203;34259](https://github.com/quarkusio/quarkus/pull/34259) - Properly configure KubernetesSerialization for OpenShiftClient
-   [#&#8203;34258](https://github.com/quarkusio/quarkus/pull/34258) - Rephrase Non-mutable jar error message for remote-dev
-   [#&#8203;34256](https://github.com/quarkusio/quarkus/pull/34256) - Use -Dnative consistently as it is what we recommend
-   [#&#8203;34255](https://github.com/quarkusio/quarkus/pull/34255) - Build analytics - Fix windows prompt
-   [#&#8203;34252](https://github.com/quarkusio/quarkus/pull/34252) - Various fixes regarding GraalVM/Mandrel flavor
-   [#&#8203;34250](https://github.com/quarkusio/quarkus/pull/34250) - Propagate Smallrye Context when switching REST Client context
-   [#&#8203;34240](https://github.com/quarkusio/quarkus/pull/34240) - Fix create app exception min java version not thrown up
-   [#&#8203;34238](https://github.com/quarkusio/quarkus/issues/34238) - Should Quarkus set the `march` parameter by default?
-   [#&#8203;34235](https://github.com/quarkusio/quarkus/pull/34235) - Bump smallrye-mutiny-vertx-core from 3.3.0 to 3.4.2
-   [#&#8203;34233](https://github.com/quarkusio/quarkus/issues/34233) - OpenAPI $ref loop when setting Schema implementation
-   [#&#8203;34232](https://github.com/quarkusio/quarkus/pull/34232) - Bump commons-codec from 1.15 to 1.16.0
-   [#&#8203;34227](https://github.com/quarkusio/quarkus/pull/34227) - Support custom claim types in quarkus-test-security-jwt and quarkus-test-security-oidc
-   [#&#8203;34224](https://github.com/quarkusio/quarkus/pull/34224) - Use GraalVM CE instead of Mandrel for building static binaries
-   [#&#8203;34223](https://github.com/quarkusio/quarkus/pull/34223) - Provide a way to push env variables to dev services containers
-   [#&#8203;34220](https://github.com/quarkusio/quarkus/issues/34220) - Build a container image from scratch breaks due to missing libraries
-   [#&#8203;34215](https://github.com/quarkusio/quarkus/pull/34215) - Upgrade to SmallRye Fault Tolerance 6.2.4
-   [#&#8203;34214](https://github.com/quarkusio/quarkus/pull/34214) - Add smallrye-jwt test confirming RSA-OAEP encrypted token with RSA 1\_5 set in headers is rejected
-   [#&#8203;34212](https://github.com/quarkusio/quarkus/issues/34212) - Tracing Issue in Version 3.1.2 - Spans Not Consolidated under Parent Span
-   [#&#8203;34207](https://github.com/quarkusio/quarkus/pull/34207) - Qute: `@EngineConfiguration` validation - consider superclasses
-   [#&#8203;34195](https://github.com/quarkusio/quarkus/pull/34195) - Small fixes for the Dev UI doc
-   [#&#8203;34174](https://github.com/quarkusio/quarkus/pull/34174) - Bump smallrye-open-api.version from 3.3.4 to 3.4.0
-   [#&#8203;34163](https://github.com/quarkusio/quarkus/issues/34163) - Qute section helper type check is not complete
-   [#&#8203;34133](https://github.com/quarkusio/quarkus/issues/34133) - Can't set non-string values on claims on JWT tokens produced in tests
-   [#&#8203;34076](https://github.com/quarkusio/quarkus/pull/34076) - Kafka Dev UI: add ACL page, set Content-Type header, support msg headers
-   [#&#8203;34060](https://github.com/quarkusio/quarkus/pull/34060) - Style n grammar edits to security overview doc
-   [#&#8203;34038](https://github.com/quarkusio/quarkus/issues/34038) - Adding headers to Kafka message does not work via Kafka UI
-   [#&#8203;34030](https://github.com/quarkusio/quarkus/issues/34030) - REST endpoints disabled via the `@EndpointDisabled` annotation still appear in swagger
-   [#&#8203;33864](https://github.com/quarkusio/quarkus/issues/33864) - Support passing environment variables to devservices containers
-   [#&#8203;33725](https://github.com/quarkusio/quarkus/issues/33725) - Live reload with multi-module workspace containing SNAPSHOT dependencies
-   [#&#8203;33589](https://github.com/quarkusio/quarkus/pull/33589) - Make the update guide in the community and product docs match
-   [#&#8203;30442](https://github.com/quarkusio/quarkus/issues/30442) - quarkus-test-security-(jwt and oidc): support non-string claims (integers, arrays, maps)

### [`v3.1.3.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.3.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.2.Final...3.1.3.Final)

##### Complete changelog

-   [#&#8203;34314](https://github.com/quarkusio/quarkus/pull/34314) - Properly disambiguate projections from different repositories
-   [#&#8203;34312](https://github.com/quarkusio/quarkus/issues/34312) - Spring Data API Extension Interface-based Projections occasionally throws NoSuchMethodError
-   [#&#8203;34307](https://github.com/quarkusio/quarkus/pull/34307) - Fix NPE on OpenTelemetryVertxTracingFactory
-   [#&#8203;34305](https://github.com/quarkusio/quarkus/issues/34305) - NPE at io.quarkus.opentelemetry.runtime.tracing.intrumentation.vertx.OpenTelemetryVertxTracingFactory$VertxDelegator.receiveResponse(OpenTelemetryVertxTracingFactory.java:102)
-   [#&#8203;34281](https://github.com/quarkusio/quarkus/pull/34281) - Also create the default mailer if `@Location` is used
-   [#&#8203;34272](https://github.com/quarkusio/quarkus/issues/34272) - Null Pointer when sending mail through MailTemplate
-   [#&#8203;34253](https://github.com/quarkusio/quarkus/pull/34253) - Upgrade Hibernate Validator to 8.0.1.Final
-   [#&#8203;34249](https://github.com/quarkusio/quarkus/pull/34249) - Vert.x 4.4.4, Netty 4.1.94, and Mutiny Bindings 3.5.0
-   [#&#8203;34246](https://github.com/quarkusio/quarkus/pull/34246) - Make sure all base codestarts work for 2.x and 3.x
-   [#&#8203;34244](https://github.com/quarkusio/quarkus/pull/34244) - URL-encode OIDC post_logout_uri query parameter
-   [#&#8203;34228](https://github.com/quarkusio/quarkus/issues/34228) - Update netty-handler to address public known CVEs in versions before 4.1.94
-   [#&#8203;34211](https://github.com/quarkusio/quarkus/pull/34211) - Select the right default version for a dialect  when  using Hibernate Reactive
-   [#&#8203;34210](https://github.com/quarkusio/quarkus/issues/34210) - OIDC `post_logout_redirect_uri` query param appended to string buffer without % escape
-   [#&#8203;34126](https://github.com/quarkusio/quarkus/pull/34126) - Take image-pull-policy config into account for init-containers
-   [#&#8203;34125](https://github.com/quarkusio/quarkus/issues/34125) - Kubernetes init-containers ignore pull-policy
-   [#&#8203;34124](https://github.com/quarkusio/quarkus/pull/34124) - Upgrade Hibernate ORM to 6.2.5.Final and Hibernate Reactive to 2.0.1.Final
-   [#&#8203;34119](https://github.com/quarkusio/quarkus/pull/34119) - Fix for missing registry parameters in quarkus push image
-   [#&#8203;34098](https://github.com/quarkusio/quarkus/pull/34098) - ArC: implement equals/hashCode for TypeVariableImpl and WildcardTypeImpl
-   [#&#8203;34091](https://github.com/quarkusio/quarkus/pull/34091) - Bump BouncyCastle version to 1.74
-   [#&#8203;34089](https://github.com/quarkusio/quarkus/issues/34089) - Quarkus extension created with 2.13 stream and Quarkus CLI 3 contains Jakarta imports
-   [#&#8203;34073](https://github.com/quarkusio/quarkus/pull/34073) - Add configured SameSite attribute to all OIDC session cookies
-   [#&#8203;34072](https://github.com/quarkusio/quarkus/pull/34072) - Fix metadata for keycloak-admin-client-reactive
-   [#&#8203;34067](https://github.com/quarkusio/quarkus/pull/34067) - Bump snappy-java from 1.1.8.4 to 1.1.10.1 in /bom/application
-   [#&#8203;34064](https://github.com/quarkusio/quarkus/issues/34064) - SameSite cookie attribute not set when tokens are splitted with Quarkus OIDC
-   [#&#8203;34062](https://github.com/quarkusio/quarkus/pull/34062) - Fixes NullPointerException when using Infinispan Counter Manager
-   [#&#8203;34056](https://github.com/quarkusio/quarkus/pull/34056) - Adjust update command quoting for Windows
-   [#&#8203;34055](https://github.com/quarkusio/quarkus/pull/34055) - Fix service name in the OpenShift guide
-   [#&#8203;34050](https://github.com/quarkusio/quarkus/issues/34050) - Infinispan NPE when upgrading to Quarkus 3
-   [#&#8203;34032](https://github.com/quarkusio/quarkus/issues/34032) - Wrong hibernate dialect version detected for MS Sql Server
-   [#&#8203;33923](https://github.com/quarkusio/quarkus/pull/33923) - Return Access-Control-Expose-Headers in normal CORS requests
-   [#&#8203;33922](https://github.com/quarkusio/quarkus/issues/33922) - Access-Control-Expose-Headers not returned to request
-   [#&#8203;33880](https://github.com/quarkusio/quarkus/pull/33880) - Update Maven server auth config properties initialization
-   [#&#8203;33779](https://github.com/quarkusio/quarkus/issues/33779) - Quarkus 3/Hibernate 6 - Exception when access ElementCollection from an Entity with an embedded composite Key with associated Object
-   [#&#8203;33527](https://github.com/quarkusio/quarkus/pull/33527) - A few requested enhancements to the Ansible guide
-   [#&#8203;32843](https://github.com/quarkusio/quarkus/pull/32843) - Improve JavaDoc -> AsciiDoc transformation for lists, paragraphs and code blocks

### [`v3.1.2.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.2.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.1.Final...3.1.2.Final)

##### Complete changelog

-   [#&#8203;34041](https://github.com/quarkusio/quarkus/pull/34041) - Fix endpoint address in the OpenShift guide
-   [#&#8203;34039](https://github.com/quarkusio/quarkus/pull/34039) - Cleanup after REST Client multipart request
-   [#&#8203;34028](https://github.com/quarkusio/quarkus/pull/34028) - Revert Liquibase to 4.20
-   [#&#8203;34024](https://github.com/quarkusio/quarkus/pull/34024) - Avoid indefinite Uni wait in OIDC recorders
-   [#&#8203;34020](https://github.com/quarkusio/quarkus/pull/34020) - Ensure Panache class transformers run before Arc's static method transformers
-   [#&#8203;34014](https://github.com/quarkusio/quarkus/pull/34014) - Fix resolving custom ObjectMapper at deserialization in Resteasy Reactive
-   [#&#8203;34012](https://github.com/quarkusio/quarkus/issues/34012) - Revert Liquibase to v4.20.0
-   [#&#8203;34008](https://github.com/quarkusio/quarkus/issues/34008) - RESTEasy Reactive: ContextResolver<ObjectMapper> not called/used
-   [#&#8203;34005](https://github.com/quarkusio/quarkus/issues/34005) - Panache tries to (and fails to) transform classes even if disabled
-   [#&#8203;34003](https://github.com/quarkusio/quarkus/pull/34003) - ArC: fix InvocationContext#setParameters()
-   [#&#8203;34001](https://github.com/quarkusio/quarkus/issues/34001) - AroundInvoke Interceptors can only modify parameters if first in chain
-   [#&#8203;33993](https://github.com/quarkusio/quarkus/issues/33993) - Quarkus startup hangs in OidcRecorder
-   [#&#8203;33988](https://github.com/quarkusio/quarkus/pull/33988) - Fix minor grammar mistake in config-reference.adoc
-   [#&#8203;33986](https://github.com/quarkusio/quarkus/issues/33986) - Resource leak: Multipart HTTP-Requests leave Attr\_ temporary files not deleted
-   [#&#8203;33983](https://github.com/quarkusio/quarkus/pull/33983) - Make sure our recipes are visible as a dependency when updating
-   [#&#8203;33978](https://github.com/quarkusio/quarkus/pull/33978) - Generated docs should generate mvn create app command with Quarkus version and not stream version
-   [#&#8203;33971](https://github.com/quarkusio/quarkus/pull/33971) - Protect include/exclude test commands against NPE
-   [#&#8203;33970](https://github.com/quarkusio/quarkus/pull/33970) - Qute: skip generation of resources if a validation error occurs
-   [#&#8203;33968](https://github.com/quarkusio/quarkus/pull/33968) - Update to Vert.x 4.4.3 and Netty 4.1.93.Final
-   [#&#8203;33966](https://github.com/quarkusio/quarkus/issues/33966) - Quarkus crashing with dev-mode with Qute (on a specific situation)
-   [#&#8203;33965](https://github.com/quarkusio/quarkus/pull/33965) - Don't include startup probe for KNative manifests
-   [#&#8203;33962](https://github.com/quarkusio/quarkus/pull/33962) - Use JavaBinFinder when launching decompiler
-   [#&#8203;33961](https://github.com/quarkusio/quarkus/issues/33961) - :dev terminal test commands don't work anymore (testSupport.include is null)
-   [#&#8203;33958](https://github.com/quarkusio/quarkus/pull/33958) - Replace IfBuildProfile in UnlessBuildProfile javadoc
-   [#&#8203;33954](https://github.com/quarkusio/quarkus/issues/33954) - UnlessBuildProfile Annotation Javadoc
-   [#&#8203;33948](https://github.com/quarkusio/quarkus/pull/33948) - Manage org.glassfish.jaxb:txw2 at the same version as jaxb-core and jaxb-runtime
-   [#&#8203;33944](https://github.com/quarkusio/quarkus/issues/33944) - Kubernetes + Smallrye Health Extensions: Knative deployment fails due to presence of startupProbe
-   [#&#8203;33940](https://github.com/quarkusio/quarkus/pull/33940) - Manage net.java.dev.jna:jna-platform at the same version as net.java.dev.jna:jna
-   [#&#8203;33939](https://github.com/quarkusio/quarkus/pull/33939) - Downgrade `maven-shade-plugin` to 3.2.1
-   [#&#8203;33934](https://github.com/quarkusio/quarkus/pull/33934) - Bump SmallRye GraphQL to 2.2.1
-   [#&#8203;33930](https://github.com/quarkusio/quarkus/issues/33930) - Decompiler fails when there's no java in path
-   [#&#8203;33912](https://github.com/quarkusio/quarkus/pull/33912) - Bump Vert.x Mutiny Bindings to version 3.4.2
-   [#&#8203;33910](https://github.com/quarkusio/quarkus/pull/33910) - Change redirection from /q/dev to /q/dev-ui to be FOUND instead of MOVED_PERMANENTLY
-   [#&#8203;33904](https://github.com/quarkusio/quarkus/pull/33904) - Gradle plugin "confused" with parent-first vs removed vs optional artifacts
-   [#&#8203;33903](https://github.com/quarkusio/quarkus/pull/33903) - ArC: beans injected into All List injection points should be unremovable
-   [#&#8203;33901](https://github.com/quarkusio/quarkus/pull/33901) - Gradle-plugin: properly handle read-only files
-   [#&#8203;33893](https://github.com/quarkusio/quarkus/pull/33893) - Bump jboss-logging from 3.5.0.Final to 3.5.1.Final
-   [#&#8203;33891](https://github.com/quarkusio/quarkus/pull/33891) - Bump mariadb-java-client from 3.1.3 to 3.1.4
-   [#&#8203;33884](https://github.com/quarkusio/quarkus/issues/33884) - Quarkus 3.1.1 causes Npe when using configinterceptor
-   [#&#8203;33878](https://github.com/quarkusio/quarkus/pull/33878) - Upgrade to Maven 3.9.2 and Maven resolver 1.9.10
-   [#&#8203;33873](https://github.com/quarkusio/quarkus/pull/33873) - Launch Liquibase and Flyway operations only when Arc is ready
-   [#&#8203;33872](https://github.com/quarkusio/quarkus/pull/33872) - Add more documentation to `@RestHeader`
-   [#&#8203;33870](https://github.com/quarkusio/quarkus/issues/33870) - Gradle plugin does not copy all files correctly, when having parent-first-artifacts
-   [#&#8203;33867](https://github.com/quarkusio/quarkus/pull/33867) - Upgrade smallrye-health to 4.0.2
-   [#&#8203;33861](https://github.com/quarkusio/quarkus/issues/33861) - Name resolution fails with `@RestHeader` annotation under certain condition
-   [#&#8203;33843](https://github.com/quarkusio/quarkus/issues/33843) - AppCDS failed if mongodb-liquibase extension present
-   [#&#8203;33842](https://github.com/quarkusio/quarkus/issues/33842) - AppCDS generation failed with `Permission denied`
-   [#&#8203;33841](https://github.com/quarkusio/quarkus/pull/33841) - ArC: fix some scenarios with generic decorators
-   [#&#8203;33825](https://github.com/quarkusio/quarkus/issues/33825) - smallrye-graphql-cdi triggers "Detected bean archive with bean discovery mode of 'all'" warning
-   [#&#8203;33824](https://github.com/quarkusio/quarkus/pull/33824) - Replace references of s2i with openshift
-   [#&#8203;33819](https://github.com/quarkusio/quarkus/pull/33819) - Restrict properties passed to gradle worker processes
-   [#&#8203;33803](https://github.com/quarkusio/quarkus/issues/33803) - Generic CDI Decorator Throws java.lang.NoSuchMethodError
-   [#&#8203;33781](https://github.com/quarkusio/quarkus/pull/33781) - Check if OIDC user-info-path is configured when UserInfo is required
-   [#&#8203;33772](https://github.com/quarkusio/quarkus/issues/33772) - OIDC code authorization flow misleading error in some OAuth2 configurations
-   [#&#8203;33679](https://github.com/quarkusio/quarkus/issues/33679) - Vert.X bump to 4.4.2 lead to `domain socket must not be empty` exception when used with Quarkus Micrometer extension
-   [#&#8203;33658](https://github.com/quarkusio/quarkus/issues/33658) - redirect of /q/dev too permanent?
-   [#&#8203;33469](https://github.com/quarkusio/quarkus/pull/33469) - Fix detection of project root in Quarkus CLI
-   [#&#8203;33402](https://github.com/quarkusio/quarkus/issues/33402) - Extension provided plugins are not automatically added if plugin catalog is missing
-   [#&#8203;33333](https://github.com/quarkusio/quarkus/pull/33333) - Use the container-provided settings decrypter
-   [#&#8203;33321](https://github.com/quarkusio/quarkus/issues/33321) - Different behavior in native build using env var in application.properties when build with gradle vs. maven (Quarkus 3.x)
-   [#&#8203;33220](https://github.com/quarkusio/quarkus/issues/33220) - Maven proxy usage is broken with Quarkus 3.0.2.Final
-   [#&#8203;33024](https://github.com/quarkusio/quarkus/issues/33024) - Error trailers are not propagated when using new Vert.x gRPC support
-   [#&#8203;30811](https://github.com/quarkusio/quarkus/issues/30811) - CDI Decorator ignored for beans implementing interface extending other generic interface

### [`v3.1.1.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.1.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.1.0.Final...3.1.1.Final)

##### Complete changelog

-   [#&#8203;33846](https://github.com/quarkusio/quarkus/pull/33846) - Update Jackson to 2.15.2
-   [#&#8203;33834](https://github.com/quarkusio/quarkus/pull/33834) - Kafka serde discovery: handle channel names containing dot
-   [#&#8203;33821](https://github.com/quarkusio/quarkus/pull/33821) - DEV UI: Prevent NPE in JsonRpc#route after Quarkus app reloaded
-   [#&#8203;33820](https://github.com/quarkusio/quarkus/issues/33820) - DEV UI on reload logs NPE xception in JsonRpcRouter#route on line 200
-   [#&#8203;33815](https://github.com/quarkusio/quarkus/pull/33815) - Redis Hostname provider - do not call getHosts() twice
-   [#&#8203;33811](https://github.com/quarkusio/quarkus/pull/33811) - Only expose the Dev UI Routes if Vert.x HTTP is present
-   [#&#8203;33804](https://github.com/quarkusio/quarkus/issues/33804) - Dev Mode fails with Quarkus 3.1 and Kafka client (no vert.x http extension on the classpath)
-   [#&#8203;33802](https://github.com/quarkusio/quarkus/pull/33802) - Fix Dev UI v1 link in the guides
-   [#&#8203;33799](https://github.com/quarkusio/quarkus/pull/33799) - Fix message typo in OIDCRecorder
-   [#&#8203;33769](https://github.com/quarkusio/quarkus/pull/33769) - Fix detection of OpenTelemetry
-   [#&#8203;33763](https://github.com/quarkusio/quarkus/pull/33763) - When using RestMulti, don't require `@Produces`
-   [#&#8203;33761](https://github.com/quarkusio/quarkus/pull/33761) - Properly implement ClientRequestContext#setEntity
-   [#&#8203;33758](https://github.com/quarkusio/quarkus/pull/33758) - Update security-keycloak-admin-client.adoc
-   [#&#8203;33756](https://github.com/quarkusio/quarkus/pull/33756) - Prevent NPE in Jacoco report preparation when a workspace module has no sources
-   [#&#8203;33753](https://github.com/quarkusio/quarkus/pull/33753) - Bump apicurio-registry.version from 2.4.2.Final to 2.4.3.Final
-   [#&#8203;33752](https://github.com/quarkusio/quarkus/pull/33752) - Bump kotlinx-serialization-json from 1.5.0 to 1.5.1
-   [#&#8203;33746](https://github.com/quarkusio/quarkus/issues/33746) - Quarkus 3.1 still throws an error if `@Produces` is not defined on a stream response
-   [#&#8203;33741](https://github.com/quarkusio/quarkus/issues/33741) - io.quarkus:quarkus-jacoco cannot import pom module dependecy
-   [#&#8203;33738](https://github.com/quarkusio/quarkus/issues/33738) - Quarkus 3.1 rest client uses wrong Messagewriter
-   [#&#8203;33735](https://github.com/quarkusio/quarkus/pull/33735) - Make Elasticsearch Java Client's withJson(...) methods work in native mode
-   [#&#8203;33730](https://github.com/quarkusio/quarkus/issues/33730) - Smallrye Reactive Messaging with Kafka Connector does not support channel names containing a dot
-   [#&#8203;33720](https://github.com/quarkusio/quarkus/pull/33720) - Normalize podman vs. podman.exe and Podman Desktop
-   [#&#8203;33718](https://github.com/quarkusio/quarkus/pull/33718) - Fix native query support in Hibernate Reactive
-   [#&#8203;33713](https://github.com/quarkusio/quarkus/issues/33713) - NamedNativeQuery not working in native image
-   [#&#8203;33695](https://github.com/quarkusio/quarkus/pull/33695) - Update rewrite-maven-plugin to 4.46.0
-   [#&#8203;33689](https://github.com/quarkusio/quarkus/pull/33689) - DevTool-cli Clarify --errors help message
-   [#&#8203;33687](https://github.com/quarkusio/quarkus/pull/33687) - Call after construct callbacks when creating outer instances/QuarkusTest
-   [#&#8203;33680](https://github.com/quarkusio/quarkus/pull/33680) - Fix dropped exception on JSON stream cancellation
-   [#&#8203;33677](https://github.com/quarkusio/quarkus/pull/33677) - Fix npe when vert.x delegate is called but not set yet
-   [#&#8203;33671](https://github.com/quarkusio/quarkus/pull/33671) - Mark test failure in time for callbacks to know about it
-   [#&#8203;33670](https://github.com/quarkusio/quarkus/pull/33670) - Guard against potential NPE in GrpcClientConfiguration
-   [#&#8203;33667](https://github.com/quarkusio/quarkus/pull/33667) - Do not include the Kafka Dev UI beans during the native build
-   [#&#8203;33663](https://github.com/quarkusio/quarkus/pull/33663) - Fix SSE response with legacy publisher in native mode
-   [#&#8203;33660](https://github.com/quarkusio/quarkus/pull/33660) - Dev UI small fixes
-   [#&#8203;33659](https://github.com/quarkusio/quarkus/pull/33659) - Add DevConsoleCORSFilter to Dev UI JsonRPC WebSocket
-   [#&#8203;33657](https://github.com/quarkusio/quarkus/pull/33657) - Security JPA Reactive - catch non-unique result exception properly
-   [#&#8203;33652](https://github.com/quarkusio/quarkus/issues/33652) - Endpoint with RestSseElementType doesn't produce events in native
-   [#&#8203;33651](https://github.com/quarkusio/quarkus/pull/33651) - Refer to 'microprofile_jwt' scope in OIDC docs
-   [#&#8203;33649](https://github.com/quarkusio/quarkus/pull/33649) - \[Doc] Fix minor typo in devtool CLI
-   [#&#8203;33647](https://github.com/quarkusio/quarkus/issues/33647) - Incorrect test status in QuarkusTestAfterTestExecutionCallback and QuarkusTestAfterEachCallback for failing test
-   [#&#8203;33645](https://github.com/quarkusio/quarkus/pull/33645) - Ignore IndexDependencyBuildItem for missing dependencies
-   [#&#8203;33643](https://github.com/quarkusio/quarkus/issues/33643) - RolesAllowed and OIDC broken in 2.16.0-Final and 3.0.4-Final with KeyCloak
-   [#&#8203;33639](https://github.com/quarkusio/quarkus/pull/33639) - Upgrade to SmallRye Fault Tolerance 6.2.3
-   [#&#8203;33631](https://github.com/quarkusio/quarkus/issues/33631) - Hibernate Storing multiple items with `@IdClass` in one transaction fails
-   [#&#8203;33627](https://github.com/quarkusio/quarkus/pull/33627) - Do not bind the "grpc" container port when configured to use same server
-   [#&#8203;33623](https://github.com/quarkusio/quarkus/issues/33623) - Regression - Unable to build native binary when using quarkus-kafka-client extension
-   [#&#8203;33614](https://github.com/quarkusio/quarkus/pull/33614) - Reincorporate entries into jars' MANIFEST.MF
-   [#&#8203;33613](https://github.com/quarkusio/quarkus/issues/33613) - MANIFEST.MF don't contain information anymore since 3.1.x builds
-   [#&#8203;33612](https://github.com/quarkusio/quarkus/pull/33612) - Make repositories setup in quarkus-parent consistent with other poms
-   [#&#8203;33608](https://github.com/quarkusio/quarkus/pull/33608) - Propagate completion and error events in Redis pub/sub
-   [#&#8203;33604](https://github.com/quarkusio/quarkus/pull/33604) - Fix support of InputStream multipart without filename in REST Client
-   [#&#8203;33601](https://github.com/quarkusio/quarkus/issues/33601) - Rest client using multipart stopped working while migrating to Quarkus 3
-   [#&#8203;33598](https://github.com/quarkusio/quarkus/pull/33598) - Fix the Micrometer MP Metrics annotation transformation
-   [#&#8203;33597](https://github.com/quarkusio/quarkus/pull/33597) - Bump dekorate to 3.6.1
-   [#&#8203;33595](https://github.com/quarkusio/quarkus/pull/33595) - Skip manifest entry properties that are missing values
-   [#&#8203;33594](https://github.com/quarkusio/quarkus/issues/33594) - Invalid Mocks in `@Nested` Tests with `@TestProfile` after upgrade to Quarkus 3
-   [#&#8203;33593](https://github.com/quarkusio/quarkus/issues/33593) - GrpcClientConfiguration.inProcess results in NPE when config not present
-   [#&#8203;33591](https://github.com/quarkusio/quarkus/pull/33591) - Correct a typo in native-reference.adoc
-   [#&#8203;33588](https://github.com/quarkusio/quarkus/issues/33588) - Failed to stop Quarkus \[Error Occurred After Shutdown] error when adjusting configuration through Dev UI
-   [#&#8203;33587](https://github.com/quarkusio/quarkus/issues/33587) - Dev UI - Configuration - unable to filter configuration properties defined in application.properties
-   [#&#8203;33586](https://github.com/quarkusio/quarkus/pull/33586) - Use 'target' as output dir for platform test classes loaded from JARs
-   [#&#8203;33585](https://github.com/quarkusio/quarkus/issues/33585) - NPE When Constructor Injecting a Microprofile Metric
-   [#&#8203;33582](https://github.com/quarkusio/quarkus/issues/33582) - Kubernetes to enforcing quarkus.kubernetes.replicas=0
-   [#&#8203;33581](https://github.com/quarkusio/quarkus/pull/33581) - Fix check to return existing marshaller if class is already bounded
-   [#&#8203;33579](https://github.com/quarkusio/quarkus/issues/33579) - Is it a Typo? seems like a bug in code. As it always returns false
-   [#&#8203;33578](https://github.com/quarkusio/quarkus/pull/33578) - Fix typo in grpc in-process runtime config
-   [#&#8203;33573](https://github.com/quarkusio/quarkus/issues/33573) - disableTrustManager is not used in ResteasyReactiveClientProvider
-   [#&#8203;33569](https://github.com/quarkusio/quarkus/pull/33569) - Pass disableTrustManager in ResteasyReactiveClientProvider
-   [#&#8203;33538](https://github.com/quarkusio/quarkus/pull/33538) - Dev UI new common component for no-service/data
-   [#&#8203;33531](https://github.com/quarkusio/quarkus/pull/33531) - Update Vert.x Mutiny bindings to version 3.4.1
-   [#&#8203;33498](https://github.com/quarkusio/quarkus/pull/33498) - Upgrade Hibernate ORM and Hibernate Reactive
-   [#&#8203;33418](https://github.com/quarkusio/quarkus/issues/33418) - Quarkus redis reactive pubsub disconnecting handler
-   [#&#8203;33305](https://github.com/quarkusio/quarkus/issues/33305) - OutputTargetBuildItem.getOutputDirectory() returning a strange value when running a test in the Platform
-   [#&#8203;33300](https://github.com/quarkusio/quarkus/pull/33300) - Register PGobject subtypes for reflection
-   [#&#8203;33285](https://github.com/quarkusio/quarkus/issues/33285) - Vertx race condition may not initialise OpenTelemetry
-   [#&#8203;33206](https://github.com/quarkusio/quarkus/issues/33206) - Using duration with hibernate and postgres interval leads to error in native mode
-   [#&#8203;33072](https://github.com/quarkusio/quarkus/issues/33072) -  Quarkus Native on(GraalVM) issue with ElasticSearch Java Client: No deserializer found in 'co.elastic.clients.elasticsearch.core.UpdateByQueryRequest.\_DESERIALIZER'
-   [#&#8203;32963](https://github.com/quarkusio/quarkus/issues/32963) - Reactive Client - Mutiny Dropped Exception on Cancel (stream+json)
-   [#&#8203;32926](https://github.com/quarkusio/quarkus/issues/32926) - New Form editor in Configuration doesn't show up the key/value in application.properties
-   [#&#8203;32234](https://github.com/quarkusio/quarkus/issues/32234) - Dev UI 2 - Generalize No Dev Services element
-   [#&#8203;29422](https://github.com/quarkusio/quarkus/issues/29422) - DevUI - config editor doesn't notify user when something goes wrong
-   [#&#8203;28971](https://github.com/quarkusio/quarkus/issues/28971) - Quarkus Maven Plugin unable to handle maven exclusions

### [`v3.1.0.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.1.0.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.0.4.Final...3.1.0.Final)

##### Complete changelog

-   [#&#8203;33536](https://github.com/quarkusio/quarkus/pull/33536) - Add some media queries for dev ui to render better on smaller screens
-   [#&#8203;33511](https://github.com/quarkusio/quarkus/pull/33511) - Move Status tag to footer
-   [#&#8203;33510](https://github.com/quarkusio/quarkus/pull/33510) - Dev UI: OpenAPI - Fix paths when custom
-   [#&#8203;33477](https://github.com/quarkusio/quarkus/issues/33477) - Dev-UI v2 fails to work with swagger-ui extension after changing its path config
-   [#&#8203;33472](https://github.com/quarkusio/quarkus/pull/33472) - Disable non configured default OIDC tenant if TenantConfigResolver is available
-   [#&#8203;33468](https://github.com/quarkusio/quarkus/issues/33468) - Upgrade vertx to 4.4.\* to allow TLS Server certificate rotation without restarts
-   [#&#8203;33462](https://github.com/quarkusio/quarkus/pull/33462) - Add support of signature algorithms (PSxxx, EdDSA) in quarkus-oidc
-   [#&#8203;33459](https://github.com/quarkusio/quarkus/pull/33459) - Disable flaky OTel-GraphQL test for now
-   [#&#8203;33432](https://github.com/quarkusio/quarkus/pull/33432) - Fix log issue with `@QuarkusIntegrationTest`
-   [#&#8203;33424](https://github.com/quarkusio/quarkus/pull/33424) - Update graal-sdk to 22.3.2
-   [#&#8203;33423](https://github.com/quarkusio/quarkus/issues/33423) - Update graal-sdk to 22.3.2 to address public known CVEs in version 22.3.0
-   [#&#8203;33416](https://github.com/quarkusio/quarkus/pull/33416) - Update to vertx 4.4.2
-   [#&#8203;33351](https://github.com/quarkusio/quarkus/pull/33351) - Fix blank DEV UI extension pages when loading data from Back End
-   [#&#8203;33331](https://github.com/quarkusio/quarkus/issues/33331) - dev-ui in Q3 is log is difficult to enlarge
-   [#&#8203;33268](https://github.com/quarkusio/quarkus/pull/33268) - Replace `jboss-parent` with `quarkus-parent`
-   [#&#8203;33229](https://github.com/quarkusio/quarkus/issues/33229) - Native binary run log is not visible when running tests with Quarkus main
-   [#&#8203;33120](https://github.com/quarkusio/quarkus/issues/33120) - Do not require OIDC users disable default tenant when TenantConfigResolver is used

### [`v3.0.4.Final`](https://github.com/quarkusio/quarkus/releases/tag/3.0.4.Final)

[Compare Source](https://github.com/quarkusio/quarkus/compare/3.0.3.Final...3.0.4.Final)

##### Complete changelog

-   [#&#8203;33551](https://github.com/quarkusio/quarkus/pull/33551) - Properly include Prometheus related code
-   [#&#8203;33547](https://github.com/quarkusio/quarkus/issues/33547) - infinispan-client + micrometer combination doesn't compile in native
-   [#&#8203;33542](https://github.com/quarkusio/quarkus/pull/33542) - Limit subclass codec registration to known working codecs
-   [#&#8203;33539](https://github.com/quarkusio/quarkus/pull/33539) - fix typo in grpc-service-consumption.adoc
-   [#&#8203;33537](https://github.com/quarkusio/quarkus/pull/33537) - Fix the custom card for Dev UI Rabbit MQ
-   [#&#8203;33499](https://github.com/quarkusio/quarkus/pull/33499) - Ensure that invoker is properly initialized in QuartzJobDefinition#schedule
-   [#&#8203;33491](https://github.com/quarkusio/quarkus/pull/33491) - Ensure that cookies added in filters are visible to resource methods
-   [#&#8203;33490](https://github.com/quarkusio/quarkus/issues/33490) - Cookies created in request filters are not accessible in Resource Methods
-   [#&#8203;33488](https://github.com/quarkusio/quarkus/pull/33488) - Bump Resteasy Classic to 6.2.4.Final
-   [#&#8203;33478](https://github.com/quarkusio/quarkus/pull/33478) - Arc - remove logging when discovering a an illega…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/grpc gRPC area/keycloak env/windows Impacts Windows machines kind/bug Something isn't working
Projects
None yet
5 participants