From b5e17010753f4618d5f446db5adc591964a42c43 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Sun, 18 Feb 2024 01:51:26 +0100
Subject: [PATCH] BUG: fix forwarded headers in FileSystemResource

---
 .../caosdb/server/resource/FileSystemResource.java  | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/main/java/org/caosdb/server/resource/FileSystemResource.java b/src/main/java/org/caosdb/server/resource/FileSystemResource.java
index 66ee11bc..93f48027 100644
--- a/src/main/java/org/caosdb/server/resource/FileSystemResource.java
+++ b/src/main/java/org/caosdb/server/resource/FileSystemResource.java
@@ -100,14 +100,14 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
       }
 
       if (file.getObjectType() == ObjectType.DIRECTORY) {
-        String referenceString = getReference().toString();
-        if (!referenceString.endsWith(Path.DEFAULT_PATH_SEPARATOR)) {
-          referenceString = referenceString + Path.DEFAULT_PATH_SEPARATOR;
+        String url = getUtils().getServerRootURI() + "/FileSystem/" + path.toString();
+        if (!url.endsWith(Path.DEFAULT_PATH_SEPARATOR)) {
+          url = url + Path.DEFAULT_PATH_SEPARATOR;
         }
         final Element folder = new Element("dir");
         folder.setAttribute("path", Path.DEFAULT_PATH_SEPARATOR + file.getPath().toString());
         folder.setAttribute("name", path.isEmpty() ? "/" : file.getName());
-        folder.setAttribute("url", referenceString);
+        folder.setAttribute("url", url);
 
         for (final VirtualFSODescriptorInterface child : file.listChildren()) {
           Element celem = null;
@@ -115,8 +115,7 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
             case DIRECTORY:
               celem = new Element("dir");
               celem.setAttribute("name", child.getName());
-              celem.setAttribute(
-                  "url", referenceString + child.getName() + Path.DEFAULT_PATH_SEPARATOR);
+              celem.setAttribute("url", url + child.getName() + Path.DEFAULT_PATH_SEPARATOR);
               break;
             case LINK:
               // TODO
@@ -125,7 +124,7 @@ public class FileSystemResource extends AbstractCaosDBServerResource {
             case FILE:
               celem = new Element("file");
               celem.setAttribute("name", child.getName());
-              celem.setAttribute("url", referenceString + child.getName());
+              celem.setAttribute("url", url + child.getName());
               break;
             default:
               throw new UnsupportedOperationException(
-- 
GitLab