From 7e5166a55fa459deab5579f764b7bb34719e5ec9 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Thu, 14 Nov 2024 11:06:34 +0000
Subject: [PATCH] Dokumentation in Arbeit: Inflator fertig dokumentiert, kleinere Anpassungen
---
src/de/uhilger/fm/Inflator.java | 36 +++++++++++++++++++++---------------
src/de/uhilger/fm/Deflator.java | 15 ++++++++-------
src/de/uhilger/fm/package-info.java | 7 +++++++
3 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/src/de/uhilger/fm/Deflator.java b/src/de/uhilger/fm/Deflator.java
index 5122475..1551c8c 100644
--- a/src/de/uhilger/fm/Deflator.java
+++ b/src/de/uhilger/fm/Deflator.java
@@ -40,13 +40,14 @@
* gepackt werden soll. Die Datei mit dem gepackten Ordnerinhalt wird in dem Ordner angelegt, der
* den zu packenden Ordner enthaelt.
*
- * @param fName Name des zu packenden Ordners
- * @param relPath relativer Pfad zum Ordner, der gepackt werden soll
+ * @param fName Name und Pfad relativ zu base des zu packenden Ordners /home/neu-2024-11-08-1722/
+ * @param relPath relativer Pfad zum Ordner, der gepackt werden soll /h2/cms/home/neu-2024-11-08-1722/?zip
+ * @param base /Users/ulli/data/helix-data
* @return die Meldung mit dem Ergebnis. Wenn die Meldung nicht "ok" lautet wurde die ZIP-Datei
* nicht erzeugt und die Meldung nennt den Grund.
*/
- public String packFolder(String fName, String relPath, String base/*, HttpExchange e*/) {
- if (!relPath.startsWith(".")) {
+ public String packFolder(String fName, /*String relPath, */String base) {
+// if (!relPath.startsWith(".")) {
try {
//String fName = getFileName(e);
//logger.fine("fName: " + fName);
@@ -72,9 +73,9 @@
//logger.log(Level.SEVERE, result, ex);
return result;
}
- } else {
- return "Falsche relative Pfadangabe";
- }
+// } else {
+// return "Falsche relative Pfadangabe";
+// }
}
/**
diff --git a/src/de/uhilger/fm/Inflator.java b/src/de/uhilger/fm/Inflator.java
index a3f72b8..4957baa 100644
--- a/src/de/uhilger/fm/Inflator.java
+++ b/src/de/uhilger/fm/Inflator.java
@@ -26,18 +26,23 @@
import java.util.zip.ZipFile;
/**
- * Eine Klasse mit Methoden zum entpacken von Dateien
+ * Entpacken von Dateien
*
* @author Ulrich Hilger, 15. Januar 2024
*/
public class Inflator {
- /* --------- ZIP entpacken ---------------- */
-
- public String extractZipfile(String fName, String relPath, String base) {
+ /**
+ * Eine Zip-Datei entpacken
+ *
+ * @param fName Name der Zip-Datei
+ * @param base absoluter Pfad des Ablageortes der Zip-Datei
+ * @return 'ok', wenn erfolgreich oder Fehlermeldung, wenn nicht
+ */
+ public String extractZipfile(String fName, /*String relPath, */String base) {
//logger.fine("fName: " + fName + ", relPath: " + relPath);
String result = null;
- if (!relPath.startsWith(".")) {
+// if (!relPath.startsWith(".")) {
try {
//File targetDir = new File(fileBase, relPath);
//File targetDir = getTargetDir(relPath);
@@ -51,17 +56,17 @@
result = ex.getLocalizedMessage();
//logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
}
- } else {
- result = "Falsche relative Pfadangabe.";
- }
+// } else {
+// result = "Falsche relative Pfadangabe.";
+// }
return result;
}
/**
- * extract a given ZIP archive to the folder respective archive resides in
+ * Eine Datei in den Ordner entpacken, in dem sie liegt
*
- * @param archive the archive to extract
- * @throws Exception
+ * @param archive die zu entpackende Zip-Datei
+ * @throws Exception wenn etwas schief geht
*/
private boolean extract(File archive) throws Exception {
ZipFile zipfile = new ZipFile(archive);
@@ -76,11 +81,12 @@
/**
* unzip a given entry of a given zip file to a given location
+ * Einen Eintrag in einer ZIP-Datei an einen gegebenen Ausgabeort extrahieren
*
- * @param zipfile the zip file to read an entry from
- * @param zipentry the zip entry to read
- * @param destPath the path to the destination location for the extracted content
- * @throws IOException
+ * @param zipfile die Zip-Datei, aus der ein zu entpackender Eintrag gelesen werden soll
+ * @param zipentry der Eintrag, der entpackt werden soll
+ * @param destPath der Pfad zum Ausgabeort
+ * @throws IOException wenn etwas schief geht
*/
private void unzip(ZipFile zipfile, ZipEntry zipentry, String destPath) throws IOException {
byte buf[] = new byte[1024];
diff --git a/src/de/uhilger/fm/package-info.java b/src/de/uhilger/fm/package-info.java
index 1f0e98c..aa832be 100644
--- a/src/de/uhilger/fm/package-info.java
+++ b/src/de/uhilger/fm/package-info.java
@@ -32,6 +32,13 @@
* Inflator().extractZipfile(fileName, path, base)
* </pre>
*
+ * Die hier enthaltenen Funktionen beinhalten keine Massnahmen gegen Path Traversal o.ä.
+ * Dies ist beabsichtigt, um Pfadausdruecke wie z.B. '../' bei den hier implementierten
+ * Dateioperationen verarbeiten zu koennen.
+ *
+ * <b>Programme, die diese Klassenbibliothek einsetzen, muessen eigene Massnahmen gegen
+ * Path Traversal o.ä. beisteuern, sofern dies nicht gewuenscht ist.</b>
+ *
* <p>Die folgenden Funktionalitaeten sind in dieser Auspraegung einer
* Dateiverwaltung fest angelegt. Sie sind damit Kandidaten fuer eine
* Erweiterung dieser Klassenbibliothek um andere evtl. benoetigte
--
Gitblit v1.9.3