eXist-db/dashboard

Broken dashboard with traffic-encrypting proxy

Closed this issue · 2 comments

What is the problem

We are routing http-traffic to our eXist-db instances through nginx as a proxy that also handles traffic encryption, on exist's contributed jetty all ssl-related configuration is deactivated.

While the dashboard does work when requested via http, but yields this document when requested via https:

<exception>
  <path>/db/apps/dashboard/modules/view.xql</path>
  <message>exerr:ERROR XPTY0004: The actual cardinality for parameter 1 does not match the cardinality declared in the function's signature: templates:apply($content as node()+, $resolver as function, $model as map?) item()*. Expected cardinality: one or more, got 0. [at line 38, column 22, source: /db/apps/dashboard/modules/view.xql]
In function:
	templates:apply(node()+, function, map?) [38:5:/db/apps/dashboard/modules/templates.xql]
  </message>
</exception>

This applies with Chromium 58.0.3029.110 as well as Firefox 54.0 on Ubuntu 16.04. curl does fine, so it may be related to some functionality that is implemented with Javascript .

The error is not evoked by our own apps, they work as expected.

Context information

Please always add the following information

  • eXist-db 3.2 / 691bcd6
  • openjdk 8u131
  • Ubuntu 16.04
  • amd64
  • nginx 1.10

after upgrading from nginx 1.10.0 to 1.10.3 it works flawlessly. though i can't find any change regarding ssl termination (as we suspected). maybe it was caused by one of the http/2 bugs or a combination of such.