From 273e25bf14948e393eb908f450ba436948d334bf Mon Sep 17 00:00:00 2001
From: Pedro Igor
Date: Tue, 22 Feb 2022 09:24:14 -0300
Subject: [PATCH] Fixing responses when unexpected errors occurs
Closes #10338
---
.../integration/web/QuarkusRequestFilter.java | 22 +++++++---
.../testsuite/util/ContainerAssume.java | 5 +++
.../admin/authentication/FlowTest.java | 44 +++++++++++++++++++
3 files changed, 64 insertions(+), 7 deletions(-)
diff --git a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/integration/web/QuarkusRequestFilter.java b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/integration/web/QuarkusRequestFilter.java
index 724996b7e8a9..ce824a86fd0a 100644
--- a/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/integration/web/QuarkusRequestFilter.java
+++ b/quarkus/runtime/src/main/java/org/keycloak/quarkus/runtime/integration/web/QuarkusRequestFilter.java
@@ -31,7 +31,9 @@
import io.vertx.core.AsyncResult;
import io.vertx.core.Handler;
import io.vertx.core.Promise;
+import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.HttpServerRequest;
+import io.vertx.core.http.HttpServerResponse;
import io.vertx.ext.web.RoutingContext;
/**
@@ -60,7 +62,7 @@ private Handler> createBlockingHandler(RoutingContext context) {
KeycloakSession session = sessionFactory.create();
configureContextualData(context, createClientConnection(context.request()), session);
- configureEndHandler(context, promise, session);
+ configureEndHandler(context, session);
KeycloakTransactionManager tx = session.getTransactionManager();
@@ -87,20 +89,26 @@ private Handler> createBlockingHandler(RoutingContext context) {
* Creates a handler to close the {@link KeycloakSession} before the response is written to response but after Resteasy
* is done with processing its output.
*/
- private void configureEndHandler(RoutingContext context, Promise