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.&auml;. 
+ * 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.&auml;. 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