Fix Hub vault URL to preserve path component

This commit is contained in:
Tobias Hagemann
2025-10-29 15:22:24 +01:00
parent de4c7d47e5
commit c5367db971

View File

@@ -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) {