From a1027d4499cfad752d6c449b407bb1f8dc4e16d2 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Mon, 04 Nov 2024 12:29:52 +0000
Subject: [PATCH] inspectFileName angepasst

---
 src/de/uhilger/neon/FileServer.java |   23 +++++++++++++----------
 1 files changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/de/uhilger/neon/FileServer.java b/src/de/uhilger/neon/FileServer.java
index cfb8ce6..b38245a 100644
--- a/src/de/uhilger/neon/FileServer.java
+++ b/src/de/uhilger/neon/FileServer.java
@@ -55,20 +55,21 @@
   public static final String STR_EMPTY = "";
   
   public void serveFile(HttpExchange exchange) throws IOException {
-    String fName = new HttpHelper().getFileName(exchange);
-    if (fName.startsWith(".")) {
-      HttpResponder fs = new HttpResponder();
-      fs.sendNotFound(exchange, fName);
-    } else {
-      File fileToDeliver = new File((String) exchange
+    String fName = exchange.getRequestURI().getPath();
+    try {
+      fName = new HttpHelper().getFileName(exchange);
+      String fBase = (String) exchange
               .getHttpContext().getAttributes()
-              .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName);
+              .getOrDefault(ATTR_FILE_BASE, STR_EMPTY);
+      //File fileToDeliver = new File((String) exchange
+         //     .getHttpContext().getAttributes()
+           //   .getOrDefault(ATTR_FILE_BASE, STR_EMPTY), fName);
+      File fileToDeliver = new File(fBase, fName);
       Headers headers = exchange.getRequestHeaders();
       if (headers.containsKey(RANGE_HEADER)) {
         new PartialFileServer().serveFileParts(exchange, fileToDeliver);
       } else {
         if (fName.length() < 1 || fName.endsWith(STR_SLASH)) {
-          //HttpHelper helper = new HttpHelper();
           File welcomeFile = tryWelcomeFiles(exchange, fName);
           if(welcomeFile != null) {
             fileToDeliver = welcomeFile;
@@ -76,9 +77,11 @@
         }
         new HttpResponder().serveFile(exchange, fileToDeliver);
       }
-    }    
+    } catch(IllegalArgumentException ex) {
+      new HttpResponder().sendNotFound(exchange, fName);
+    }
   }
-
+  
   public File tryWelcomeFiles(HttpExchange e, String fName) {
     boolean notFound = true;
     File file = null;

--
Gitblit v1.9.3