From 75f66e40bf245d1c5b4567734fefab95da124e17 Mon Sep 17 00:00:00 2001 From: Armin Schrenk Date: Tue, 10 Nov 2020 12:05:30 +0100 Subject: [PATCH] Add additional mountName crunching to be urlconform when WebDAV is used --- .../java/org/cryptomator/common/vaults/WebDavVolume.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/main/commons/src/main/java/org/cryptomator/common/vaults/WebDavVolume.java b/main/commons/src/main/java/org/cryptomator/common/vaults/WebDavVolume.java index bf42e353f..fe9246085 100644 --- a/main/commons/src/main/java/org/cryptomator/common/vaults/WebDavVolume.java +++ b/main/commons/src/main/java/org/cryptomator/common/vaults/WebDavVolume.java @@ -1,6 +1,7 @@ package org.cryptomator.common.vaults; +import com.google.common.base.CharMatcher; import org.cryptomator.common.settings.Settings; import org.cryptomator.common.settings.VaultSettings; import org.cryptomator.common.settings.VolumeImpl; @@ -45,7 +46,9 @@ public class WebDavVolume implements Volume { if (!server.isRunning()) { server.start(); } - servlet = server.createWebDavServlet(fs.getPath("/"), vaultSettings.getId() + "/" + vaultSettings.mountName().get()); + CharMatcher acceptable = CharMatcher.inRange('0', '9').or(CharMatcher.inRange('A', 'Z')).or(CharMatcher.inRange('a', 'z')); + String urlConformMountName = acceptable.negate().collapseFrom(vaultSettings.mountName().get(), '_'); + servlet = server.createWebDavServlet(fs.getPath("/"), vaultSettings.getId() + "/" + urlConformMountName); servlet.start(); mount(); }