From 8b0a20cfd79a6b7e88799f52bcc59039d3fee667 Mon Sep 17 00:00:00 2001 From: Alexander Skoblikov Date: Wed, 25 Mar 2026 10:22:55 +0300 Subject: [PATCH] dbeaver/pro#8768 fix federated logout (#4230) Co-authored-by: kseniaguzeeva <112612526+kseniaguzeeva@users.noreply.github.com> --- .../src/io/cloudbeaver/utils/ServletAppUtils.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/utils/ServletAppUtils.java b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/utils/ServletAppUtils.java index e83ecaafcc..9edd4c98ac 100644 --- a/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/utils/ServletAppUtils.java +++ b/server/bundles/io.cloudbeaver.model/src/io/cloudbeaver/utils/ServletAppUtils.java @@ -193,8 +193,12 @@ public class ServletAppUtils { @NotNull String origin ) throws DBException { String finalOrigin = webAuthApplication.modifyOrigin(origin); - StringBuilder authUriBuilder = new StringBuilder(removeSideSlashes(finalOrigin)); String serviceUriSegment = removeSideSlashes(webAuthApplication.getAuthServiceUriSegment()); + String rootUri = removeSideSlashes(getServletApplication().getRootURI()); + if (finalOrigin.endsWith("/" + rootUri) && serviceUriSegment.startsWith(rootUri + "/")) { + finalOrigin = finalOrigin.substring(0, finalOrigin.length() - rootUri.length()); + } + StringBuilder authUriBuilder = new StringBuilder(removeSideSlashes(finalOrigin)); if (CommonUtils.isNotEmpty(serviceUriSegment)) { authUriBuilder.append("/").append(serviceUriSegment); }