From 1dd442a6e8da682df20276d6474bdf94d4a1013f Mon Sep 17 00:00:00 2001 From: Giuseppe Lo Presti Date: Fri, 9 Jun 2023 18:31:57 +0200 Subject: [PATCH] Use paths as opposed to full URIs in /ocm-provider --- changelog/unreleased/ocm-compat.md | 6 ++++++ .../http/services/ocmprovider/ocmprovider.go | 16 +++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) create mode 100644 changelog/unreleased/ocm-compat.md diff --git a/changelog/unreleased/ocm-compat.md b/changelog/unreleased/ocm-compat.md new file mode 100644 index 0000000000..d3541f3421 --- /dev/null +++ b/changelog/unreleased/ocm-compat.md @@ -0,0 +1,6 @@ +Bugfix: only expose paths on /ocm-provider + +Following analysis of OC and NC code to access a remote share, +we must expose paths and not full URIs on the /ocm-provider endpoint. + +https://github.com/cs3org/reva/pull/3962 diff --git a/internal/http/services/ocmprovider/ocmprovider.go b/internal/http/services/ocmprovider/ocmprovider.go index a88f9e52a0..e11ea871ec 100644 --- a/internal/http/services/ocmprovider/ocmprovider.go +++ b/internal/http/services/ocmprovider/ocmprovider.go @@ -70,10 +70,16 @@ func (c *config) init() { c.Provider = "reva" } if c.WebdavRoot == "" { - c.WebdavRoot = "/remote.php/dav/ocm" + c.WebdavRoot = "/remote.php/dav/ocm/" + } + if c.WebdavRoot[len(c.WebdavRoot)-1:] != "/" { + c.WebdavRoot += "/" } if c.WebappRoot == "" { - c.WebappRoot = "/external/sciencemesh" + c.WebappRoot = "/external/sciencemesh/" + } + if c.WebappRoot[len(c.WebappRoot)-1:] != "/" { + c.WebappRoot += "/" } } @@ -99,12 +105,12 @@ func (c *config) prepare() *discoveryData { d.Provider = c.Provider rtProtos := map[string]string{} // webdav is always enabled - rtProtos["webdav"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebdavRoot) + rtProtos["webdav"] = c.WebdavRoot if c.EnableWebapp { - rtProtos["webapp"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebappRoot) + rtProtos["webapp"] = c.WebappRoot } if c.EnableDatatx { - rtProtos["datatx"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebdavRoot) + rtProtos["datatx"] = c.WebdavRoot } d.ResourceTypes = []resourceTypes{{ Name: "file", // so far we only support `file`