From 4bdc4ab5befcbb8c1b116db29fa8e493be6f8c93 Mon Sep 17 00:00:00 2001 From: Chinmay Pendharkar Date: Fri, 3 Feb 2023 13:51:51 +0800 Subject: [PATCH] fix(webserver): use the canonicalPath when serving local directories to get around jetty's simlink checks --- .../org/arl/fjage/connectors/WebServer.java | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/arl/fjage/connectors/WebServer.java b/src/main/java/org/arl/fjage/connectors/WebServer.java index 9788e312..4f5d9f4a 100644 --- a/src/main/java/org/arl/fjage/connectors/WebServer.java +++ b/src/main/java/org/arl/fjage/connectors/WebServer.java @@ -287,15 +287,20 @@ public void add(String context, String resource) { * @param cacheControl cache control header. */ public void add(String context, File dir, String cacheControl) { - ContextHandler handler = new ContextHandler(context); - ResourceHandler resHandler = new ResourceHandler(); - resHandler.setResourceBase(dir.getAbsolutePath()); - resHandler.setWelcomeFiles(new String[]{ "index.html" }); - resHandler.setDirectoriesListed(false); - resHandler.setCacheControl(cacheControl); - handler.setHandler(resHandler); - staticContexts.put(context, handler); - add(handler); + try { + ContextHandler handler = new ContextHandler(context); + ResourceHandler resHandler = new ResourceHandler(); + resHandler.setResourceBase(dir.getCanonicalPath()); + resHandler.setWelcomeFiles(new String[]{ "index.html" }); + resHandler.setDirectoriesListed(false); + resHandler.setCacheControl(cacheControl); + handler.setHandler(resHandler); + staticContexts.put(context, handler); + add(handler); + }catch (IOException ex){ + log.warning("Unable to find the directory : " + dir.toString()); + return; + } } /**