From 97823d1cb98fa7865ca44824018e92276146a80d Mon Sep 17 00:00:00 2001 From: ulrich Date: Thu, 13 Mar 2025 16:28:34 +0000 Subject: [PATCH] evtl. enthaltene Query aus Bild-URI herausgelassen --- src/de/uhilger/neon/image/ImageFilter.java | 44 +++++++++++++++++++++++++++++++------------- 1 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/de/uhilger/neon/image/ImageFilter.java b/src/de/uhilger/neon/image/ImageFilter.java index 1f02274..51f8ff4 100644 --- a/src/de/uhilger/neon/image/ImageFilter.java +++ b/src/de/uhilger/neon/image/ImageFilter.java @@ -20,6 +20,7 @@ import com.sun.net.httpserver.Filter; import com.sun.net.httpserver.HttpExchange; import de.uhilger.neon.FileServer; +import de.uhilger.neon.HttpHelper; import java.io.IOException; /** @@ -60,19 +61,36 @@ @Override public void doFilter(HttpExchange exchange, Chain chain) throws IOException { - String uriStr = exchange.getRequestURI().toString(); - //String fName = new HttpHelper().getFileName(exchange); - String fName = exchange - .getRequestURI() - .getPath() - .substring(exchange - .getHttpContext() - .getPath() - .length()); - ImageWorker worker = new ImageWorker(); - worker.createImages(exchange.getHttpContext().getAttributes().get(FileServer.ATTR_FILE_BASE).toString(), - fName, uriStr); - chain.doFilter(exchange); + /* + Regex fuer Bilder + .+\.jpg|.+\.jpeg|.+\.png + (Testen z.B. auf https://regexr.com/) + */ + String pattern = (String) exchange.getHttpContext().getAttributes() + .getOrDefault("imageFilterPattern", ".+\\.jpg|.+\\.jpeg|.+\\.png"); + String uriStr = exchange.getRequestURI().toString().toLowerCase(); + if(uriStr.contains("?")) { + uriStr = uriStr.substring(0, uriStr.indexOf("?")); + } + try { + String fName = new HttpHelper().getFileName(exchange); + if(uriStr.matches(pattern)) { + String fileBase = (String) exchange.getHttpContext().getAttributes() + .get(FileServer.ATTR_FILE_BASE); + String fileName = exchange + .getRequestURI() + .getPath() + .substring(exchange + .getHttpContext() + .getPath() + .length()); + new ImageWorker().createImages(fileBase, fileName, uriStr); + } + } catch(IllegalArgumentException ex) { + // ungueltiger Dateiname, keine Transformation noetig, tue nichts + } finally { + chain.doFilter(exchange); + } } @Override -- Gitblit v1.9.3