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