Wir verwenden nginx für den https-Traffic-Offloading, Proxying zu einem lokal installierten Jasperserver (5.2), der auf Port 8080 läuft.
%Vor%Beim Zugriff auf den Jasperserver direkt an seinem Port ist alles in Ordnung. Beim Zugriff auf den Dienst über nginx werden einige Funktionen unterbrochen (z. B. das Bearbeiten eines Benutzers in der Benutzeroberfläche von jasperserver), und im jasperserver-Protokoll werden Einträge wie folgt angezeigt:
%Vor%Nach einigem Debugging haben wir den Grund dafür gefunden:
In seiner Standardkonfiguration leitet nginx keine Anforderungsheader weiter, die in ihrem Namen Unterstriche enthalten. Jasperserver (und das OWASP-Framework) verwenden jedoch standardmäßig Unterstriche zur Übertragung des csrf-Tokens ( JASPER_CSRF_TOKEN
bzw. OWASP_CSRFTOKEN
).
Lösung ist entweder:
nginx: Erlaubt Unterstriche in Kopfzeilen
%Vor%jasperserver-pro/WEB-INF/esapi/Owasp.CsrfGuard.properties
Siehe auch hier:
Beantwortete es selbst - hoffentlich ist das auch für andere von Nutzen.
Ich hatte dieses Problem mit Jasperserver 5.5 AWS AMI
Genauer:
%Vor%Ändern:
%Vor%An:
%Vor%Tags und Links nginx proxy csrf jasperserver owasp