From 894408354b6c7e01d01f0730bb50b86c5f47500e Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 11 Oct 2023 11:22:39 +0300 Subject: [PATCH] =?UTF-8?q?test-api-clearing=20http://10.200.200.183:8701/?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=D0=B4=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D1=83=D0=BB=D1=83=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BC=D0=BE?= =?UTF-8?q?=D0=B4=D1=83=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/test/controller/Controller.java | 4 ++-- .../controller/HttpServerSimpleFramework.java | 19 ++++++++++++++++--- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java index 31f4f537e..0170ecf63 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/Controller.java @@ -35,9 +35,9 @@ public class Controller extends HttpServerSimpleFramework { @Override protected void createContextPages(HttpServer server, String baseUrl) throws IOException { - //server.createContext(baseUrl, new RedirectPage(baseUrl+"index.html")); + server.createContext(baseUrl, new RedirectPage(baseUrl, baseUrl+"index.html")); //server.createContext(baseUrl + "/favicon.ico", staticPageFromResource("pages/favicon.ico", null).contentType="image/icon"); - server.createContext(baseUrl + "", staticPageFromResource("pages/index.html", null)); + server.createContext(baseUrl + "index.html", staticPageFromResource("pages/index.html", null)); // Database server.createContext(baseUrl + "imdg/reload", new ImdgHandler()); diff --git a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java index f1538590c..66a89d0f3 100644 --- a/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java +++ b/clearing-parent/test-api-clearing/src/main/java/ru/spcex/clearing/test/controller/HttpServerSimpleFramework.java @@ -37,7 +37,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis } protected void createContextPages(HttpServer server, String baseUrl) throws IOException { - server.createContext(baseUrl, new RedirectPage(baseUrl + "index.html")); + server.createContext(baseUrl, new RedirectPage(baseUrl, baseUrl + "index.html")); server.createContext(baseUrl + "index.html", staticPageFromResource("pages/index.html", null)); } @@ -58,7 +58,7 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis @Override public void destroy() throws Exception { if (server != null) { - server.stop(100); + server.stop(6); log.info("HTTP test controller stop."); } } @@ -121,14 +121,27 @@ public abstract class HttpServerSimpleFramework implements InitializingBean, Dis public static class RedirectPage implements HttpHandler { protected final Logger log = LoggerFactory.getLogger(getClass()); + protected String myUrl; // для редиректа с корня / protected String toUrl; - public RedirectPage(String toUrl) { + public RedirectPage(String myUrl, String toUrl) { + this.myUrl = Objects.requireNonNull(myUrl); this.toUrl = Objects.requireNonNull(toUrl); } @Override public void handle(HttpExchange he) throws IOException { + if (!myUrl.equalsIgnoreCase(he.getRequestURI().getPath()) && + !myUrl.equalsIgnoreCase(he.getRequestURI().getPath() + "/") && + !(myUrl + "/").equalsIgnoreCase(he.getRequestURI().getPath())) { + log.info("Access {} url \"{}\" IP {}; 404", he.getRequestMethod(), + he.getRequestURI(), he.getRemoteAddress().getAddress().getHostAddress()); + he.sendResponseHeaders(404, 0); + try (OutputStream os = he.getResponseBody()) { + os.write("404 Page not found".getBytes("windows-1251")); + } + he.close(); + } log.info("Access {} url \"{}\" IP {}; redirect to \"{}\"", he.getRequestMethod(), he.getRequestURI(), he.getRemoteAddress().getAddress().getHostAddress(), toUrl); Headers responseHeaders = he.getResponseHeaders();