Webdav doesn't work get go panic message

Hello, everybody,

I can’t get the WebDAV to work. I already tried several clients (Windows, WinSCP, Cyberduck). Every time I get an Error 502 Bad Gateway.

Pydio Cells has version 1.5.2 and runs directly without reverse proxy.

Log says following.

May 09 14:34:00 *** bash[11965]: 2019-05-09T14:34:00.725+0200        DEBUG        http: panic serving 192.168.20.69:50890: runtime error: invalid memory address or nil pointer dereference
May 09 14:34:00 *** bash[11965]: goroutine 18331 [running]:
May 09 14:34:00 *** bash[11965]: net/http.(*conn).serve.func1(0xc00c49d0e0)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1769 +0x139
May 09 14:34:00 *** bash[11965]: panic(0x29b99e0, 0x88d14f0)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/runtime/panic.go:522 +0x1b5
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/vendor/github.com/coreos/go-oidc.(*Provider).Endpoint(...)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/vendor/github.com/coreos/go-oidc/oidc.go:145
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/common/auth.(*JWTVerifier).PasswordCredentialsToken(0xc00c7dd7c0, 0x69c6740, 0xc00cdac440, 0xc00c995260, 0xb, 0xc00c99526c, 0x8, 0xc00ac54870, 0xc010c5aa28, 0x0, ...)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/common/auth/jwt.go:172 +0x99
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/common/auth.(*BasicAuthenticator).Wrap.func1(0x69b4ac0, 0xc00a7687e0, 0xc00dff4300)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/common/auth/basic.go:79 +0x686
May 09 14:34:00 *** bash[11965]: net/http.HandlerFunc.ServeHTTP(0xc0064c1b40, 0x69b4ac0, 0xc00a7687e0, 0xc00dff4300)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1995 +0x44
May 09 14:34:00 *** bash[11965]: net/http.serverHandler.ServeHTTP(0xc00e5b0c30, 0x69b4ac0, 0xc00a7687e0, 0xc00dff4300)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:2774 +0xa8
May 09 14:34:00 *** bash[11965]: net/http.(*conn).serve(0xc00c49d0e0, 0x69c6740, 0xc00cdac3c0)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1878 +0x851
May 09 14:34:00 *** bash[11965]: created by net/http.(*Server).Serve
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:2884 +0x2f4
May 09 14:34:00 *** bash[11965]: 2019-05-09T14:34:00.809+0200        DEBUG        http: TLS handshake error from 192.168.20.69:46900: remote error: tls: bad certificate
May 09 14:34:00 *** bash[11965]: 2019-05-09T14:34:00.809+0200        DEBUG        http: panic serving 192.168.20.69:50894: runtime error: invalid memory address or nil pointer dereference
May 09 14:34:00 *** bash[11965]: goroutine 18337 [running]:
May 09 14:34:00 *** bash[11965]: net/http.(*conn).serve.func1(0xc00c49d2c0)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1769 +0x139
May 09 14:34:00 *** bash[11965]: panic(0x29b99e0, 0x88d14f0)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/runtime/panic.go:522 +0x1b5
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/vendor/github.com/coreos/go-oidc.(*Provider).Endpoint(...)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/vendor/github.com/coreos/go-oidc/oidc.go:145
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/common/auth.(*JWTVerifier).PasswordCredentialsToken(0xc00d18aaf0, 0x69c6740, 0xc00d1b0a40, 0xc00d2f6900, 0xb, 0xc00d2f690c, 0x8, 0xc00ad834d0, 0xc009949a28, 0x0, ...)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/common/auth/jwt.go:172 +0x99
May 09 14:34:00 *** bash[11965]: github.com/pydio/cells/common/auth.(*BasicAuthenticator).Wrap.func1(0x69b4ac0, 0xc009359960, 0xc00dff4700)
May 09 14:34:00 *** bash[11965]: /opt/teamcity/agent/work/fd94d35d44c59350/src/github.com/pydio/cells/common/auth/basic.go:79 +0x686
May 09 14:34:00 *** bash[11965]: net/http.HandlerFunc.ServeHTTP(0xc0064c1b40, 0x69b4ac0, 0xc009359960, 0xc00dff4700)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1995 +0x44
May 09 14:34:00 *** bash[11965]: net/http.serverHandler.ServeHTTP(0xc00e5b0c30, 0x69b4ac0, 0xc009359960, 0xc00dff4700)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:2774 +0xa8
May 09 14:34:00 *** bash[11965]: net/http.(*conn).serve(0xc00c49d2c0, 0x69c6740, 0xc00cdac580)
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:1878 +0x851
May 09 14:34:00 *** bash[11965]: created by net/http.(*Server).Serve
May 09 14:34:00 *** bash[11965]: /usr/local/go/src/net/http/server.go:2884 +0x2f4

Hello @Jkey ,

With windows to access a webdav that is running on a non-https Cells you must do a registry configuration,

With windows you might encounter an issue when accessing a webdav that is not running with SSL.
To solve this, you have to edit a value in the registry:

Look for this inside the registry: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters
Then select this BasicAuthLevel
and set it's value to 2
the value to 2 means that it's no more restricted to only secure connection(https)

You can find more details on how to connect to the webdav in our knowledge base.

Regards.

Hello, Zayn,

the Cells instance runs with a valid Let’s Encrypt certificate.

Hi @Jkey,

Could you give me in details all the steps and information that you are using when you want to connect to the webdav.
(You could for instance give me the details for cybderduck client)

  • Protocol: webdav (http) or webav(https)
  • URL: the complete url that you use for the access
  • Path: For cybderduck a path is used
  • Port: (for instance on CybderDuck you can provide the port in the settings)
  • Pydio-user: should have read access to the workspaces.

@zayn did you retest recently with a let’s encrypt install?

@Jkey can you check that the value of the jwt “issuer” (look inside the pydio.json) is the same as the urlExternal (that must correspond to your LE domain) ? It looks like the internal call to the OIDC server is incorrect.

@charles,

the value of the jwt "issuer "seems to be right.
“issuer”: “https://transfer.someone.com/auth/dex”,

LE Domain is transfer.someone.com
“url”: “https://transfer.someone.com”,

@zayn mainly I test it with the Windows WebDAV. I just checked if it was the Windows WebDAV implementation. The CybderDuck Client is unfortunately not an option for us.

@charles

I found the mistake. It’s Windows. It removes the last slash at the URL https://transfer.someone.com/dav/ .

This makes Pydio answer with the normal HTML page. @zayn 's recommendation to take the URL https://transfer.someone.com/dav/personal-files worked.

Here is a screenshot from mitmproxy showing the wrong URL.

During my search I also came across the following.
https://www.fladi.at/posts/windows-webdav-fail/

How can I solve the issue?