From c5367db97134c9479914fb804e5229a65db128a9 Mon Sep 17 00:00:00 2001 From: Tobias Hagemann Date: Wed, 29 Oct 2025 15:22:24 +0100 Subject: [PATCH] Fix Hub vault URL to preserve path component --- .../ui/sharevault/ShareVaultController.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/cryptomator/ui/sharevault/ShareVaultController.java b/src/main/java/org/cryptomator/ui/sharevault/ShareVaultController.java index 93fb298ed..b0c490a3f 100644 --- a/src/main/java/org/cryptomator/ui/sharevault/ShareVaultController.java +++ b/src/main/java/org/cryptomator/ui/sharevault/ShareVaultController.java @@ -58,9 +58,15 @@ public class ShareVaultController implements FxController { private static URI getHubUri(Vault vault) { try { - var keyID = new URI(vault.getVaultConfigCache().get().getKeyId().toString()); - assert keyID.getScheme().startsWith(SCHEME_PREFIX); - return new URI(keyID.getScheme().substring(SCHEME_PREFIX.length()) + "://" + keyID.getHost() + "/app/vaults"); + var keyId = new URI(vault.getVaultConfigCache().get().getKeyId().toString()); + assert keyId.getScheme().startsWith(SCHEME_PREFIX); + var path = keyId.getPath(); + var apiIdx = path.indexOf("/api/"); + if (apiIdx < 0) { + throw new IllegalArgumentException("Path does not contain /api/: " + path); + } + var appPath = path.substring(0, apiIdx) + "/app/vaults"; + return new URI(keyId.getScheme().substring(SCHEME_PREFIX.length()), keyId.getAuthority(), appPath, null, null); } catch (IOException e) { throw new UncheckedIOException(e); } catch (URISyntaxException e) {