diff --git a/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java b/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java index 702b24d..3fdd8de 100644 --- a/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java +++ b/core/src/main/java/de/srsoftware/umbrella/core/api/FileService.java @@ -1,3 +1,4 @@ +/* © SRSoftware 2025 */ package de.srsoftware.umbrella.core.api; public interface FileService { diff --git a/files/src/main/java/de/srsoftware/umbrella/files/Constants.java b/files/src/main/java/de/srsoftware/umbrella/files/Constants.java index 223cc5d..87149b8 100644 --- a/files/src/main/java/de/srsoftware/umbrella/files/Constants.java +++ b/files/src/main/java/de/srsoftware/umbrella/files/Constants.java @@ -1,3 +1,4 @@ +/* © SRSoftware 2025 */ package de.srsoftware.umbrella.files; public class Constants { diff --git a/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java b/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java index 93754b1..4cde1f5 100644 --- a/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java +++ b/files/src/main/java/de/srsoftware/umbrella/files/FileDb.java @@ -1,3 +1,4 @@ +/* © SRSoftware 2025 */ package de.srsoftware.umbrella.files; import de.srsoftware.umbrella.core.model.UmbrellaUser; diff --git a/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java index 5b9b20e..c7d0a2c 100644 --- a/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java +++ b/files/src/main/java/de/srsoftware/umbrella/files/FileModule.java @@ -1,5 +1,16 @@ +/* © SRSoftware 2025 */ package de.srsoftware.umbrella.files; +import static de.srsoftware.umbrella.core.ConnectionProvider.connect; +import static de.srsoftware.umbrella.core.Constants.*; +import static de.srsoftware.umbrella.core.ModuleRegistry.projectService; +import static de.srsoftware.umbrella.core.ModuleRegistry.userService; +import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.*; +import static de.srsoftware.umbrella.files.Constants.CONFIG_DATABASE; +import static de.srsoftware.umbrella.files.Constants.CONFIG_FILESTORE; +import static java.net.HttpURLConnection.HTTP_OK; +import static java.nio.charset.StandardCharsets.UTF_8; + import com.sun.net.httpserver.HttpExchange; import de.srsoftware.configuration.Configuration; import de.srsoftware.tools.Path; @@ -11,26 +22,16 @@ import de.srsoftware.umbrella.core.exceptions.UmbrellaException; import de.srsoftware.umbrella.core.model.Project; import de.srsoftware.umbrella.core.model.Token; import de.srsoftware.umbrella.core.model.UmbrellaUser; - import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.IOException; +import java.net.URLDecoder; import java.nio.file.Files; import java.util.HashMap; import java.util.Map; import java.util.Optional; import java.util.stream.Collectors; -import static de.srsoftware.umbrella.core.ConnectionProvider.connect; -import static de.srsoftware.umbrella.core.Constants.*; -import static de.srsoftware.umbrella.core.ModuleRegistry.projectService; -import static de.srsoftware.umbrella.core.ModuleRegistry.userService; -import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.*; -import static de.srsoftware.umbrella.files.Constants.CONFIG_DATABASE; -import static de.srsoftware.umbrella.files.Constants.CONFIG_FILESTORE; -import static java.net.HttpURLConnection.HTTP_OK; - public class FileModule extends BaseHandler implements FileService { private final File baseDir; @@ -91,7 +92,7 @@ public class FileModule extends BaseHandler implements FileService { } var project = projects.loadMembers(projects.load(pid)); var filename = "/project/"+pid; - if (!path.empty()) filename += "/"+path; + if (!path.empty()) filename += "/"+URLDecoder.decode(path.toString(),UTF_8); if (!project.hasMember(user) && !fileDb.isPermitted(user,filename)) throw forbidden("You are not allowed to access {0}",filename); var file = new File(baseDir+filename); if (!file.exists()) throw unprocessable("{0} does not exist!",filename); diff --git a/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java b/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java index e88469c..449c558 100644 --- a/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java +++ b/files/src/main/java/de/srsoftware/umbrella/files/SqliteDb.java @@ -1,13 +1,6 @@ +/* © SRSoftware 2025 */ package de.srsoftware.umbrella.files; -import de.srsoftware.tools.jdbc.Condition; -import de.srsoftware.tools.jdbc.Query; -import de.srsoftware.umbrella.core.BaseDb; -import de.srsoftware.umbrella.core.model.UmbrellaUser; - -import java.sql.Connection; -import java.sql.SQLException; - import static de.srsoftware.tools.jdbc.Condition.equal; import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL; import static de.srsoftware.tools.jdbc.Query.select; @@ -17,6 +10,11 @@ import static de.srsoftware.umbrella.files.Constants.FILE; import static de.srsoftware.umbrella.files.Constants.TABLE_FILE_SHARES; import static java.text.MessageFormat.format; +import de.srsoftware.umbrella.core.BaseDb; +import de.srsoftware.umbrella.core.model.UmbrellaUser; +import java.sql.Connection; +import java.sql.SQLException; + public class SqliteDb extends BaseDb implements FileDb { public SqliteDb(Connection conn) { diff --git a/legacy/src/main/java/de/srsoftware/umbrella/legacy/CompanyLegacy.java b/legacy/src/main/java/de/srsoftware/umbrella/legacy/CompanyLegacy.java index 095743a..8217099 100644 --- a/legacy/src/main/java/de/srsoftware/umbrella/legacy/CompanyLegacy.java +++ b/legacy/src/main/java/de/srsoftware/umbrella/legacy/CompanyLegacy.java @@ -14,7 +14,6 @@ import de.srsoftware.configuration.Configuration; import de.srsoftware.tools.Path; import de.srsoftware.tools.SessionToken; import de.srsoftware.umbrella.core.BaseHandler; -import de.srsoftware.umbrella.core.ModuleRegistry; import de.srsoftware.umbrella.core.model.Token; import de.srsoftware.umbrella.core.model.UmbrellaUser; import java.io.IOException; diff --git a/time/src/main/java/de/srsoftware/umbrella/time/TimeModule.java b/time/src/main/java/de/srsoftware/umbrella/time/TimeModule.java index a964216..1d01ab4 100644 --- a/time/src/main/java/de/srsoftware/umbrella/time/TimeModule.java +++ b/time/src/main/java/de/srsoftware/umbrella/time/TimeModule.java @@ -10,7 +10,6 @@ import static de.srsoftware.umbrella.core.exceptions.UmbrellaException.*; import static de.srsoftware.umbrella.core.model.Time.State.Open; import static de.srsoftware.umbrella.core.model.Time.State.Started; import static de.srsoftware.umbrella.time.Constants.*; -import static java.util.stream.Collectors.toSet; import com.sun.net.httpserver.HttpExchange; import de.srsoftware.configuration.Configuration;