diff --git a/go_cloud/api b/go_cloud/api index cf6ef34..ab32f38 100755 Binary files a/go_cloud/api and b/go_cloud/api differ diff --git a/go_cloud/internal/http/wopi_handlers.go b/go_cloud/internal/http/wopi_handlers.go index c07cc72..a808ed5 100644 --- a/go_cloud/internal/http/wopi_handlers.go +++ b/go_cloud/internal/http/wopi_handlers.go @@ -878,8 +878,11 @@ func collaboraProxyHandler(w http.ResponseWriter, r *http.Request, db *database. // Get the correct Collabora editor URL from discovery (includes version hash) editorURL := getCollaboraEditorURL(collaboraURL) - // WOPISrc is passed unencoded in the query parameter - collaboraFullURL := fmt.Sprintf("%s?WOPISrc=%s", editorURL, wopiSrc) + // URL-encode the WOPISrc for use in the query parameter (Collabora expects this) + encodedWopiSrc := url.QueryEscape(wopiSrc) + + // Build the full Collabora URL with WOPISrc as query parameter + collaboraFullURL := fmt.Sprintf("%s?WOPISrc=%s", editorURL, encodedWopiSrc) // Return HTML page with auto-submitting form // No access_token needed in body since it's in WOPISrc