Skip to content

Commit bb96f24

Browse files
authored
Merge pull request #48060 from sberyozkin/avoid_duplicate_add_oidc_cookie_call
Avoid a duplicate OIDC add cookie call
2 parents 98f159e + 2195235 commit bb96f24

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/CodeAuthenticationMechanism.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1263,7 +1263,6 @@ static ServerCookie createCookie(RoutingContext context, OidcTenantConfig oidcCo
12631263
if (sessionCookie) {
12641264
cookie.setSameSite(CookieSameSite.valueOf(oidcConfig.authentication().cookieSameSite().name()));
12651265
}
1266-
context.response().addCookie(cookie);
12671266
return cookie;
12681267
}
12691268

integration-tests/oidc-code-flow/src/test/java/io/quarkus/it/keycloak/CodeFlowTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
import java.nio.charset.StandardCharsets;
1515
import java.time.Duration;
1616
import java.time.Instant;
17+
import java.util.ArrayList;
1718
import java.util.Base64;
19+
import java.util.List;
1820
import java.util.UUID;
1921
import java.util.concurrent.Callable;
2022
import java.util.concurrent.TimeUnit;
@@ -1707,7 +1709,19 @@ private String getSavedPathFromJson(String value) {
17071709
}
17081710

17091711
private Cookie getSessionCookie(WebClient webClient, String tenantId) {
1710-
return webClient.getCookieManager().getCookie("q_session" + (tenantId == null ? "_Default_test" : "_" + tenantId));
1712+
String cookieName = "q_session" + (tenantId == null ? "_Default_test" : "_" + tenantId);
1713+
List<Cookie> sessionCookies = new ArrayList<>();
1714+
for (Cookie c : webClient.getCookieManager().getCookies()) {
1715+
if (c.getName().equals(cookieName)) {
1716+
sessionCookies.add(c);
1717+
}
1718+
}
1719+
if (sessionCookies.isEmpty()) {
1720+
return null;
1721+
} else {
1722+
assertEquals(1, sessionCookies.size());
1723+
return sessionCookies.get(0);
1724+
}
17111725
}
17121726

17131727
private Cookie getSessionAtCookie(WebClient webClient, String tenantId) {

0 commit comments

Comments
 (0)