2017-07-26 2 views
0

Ich habe eine Spring/JSF-Anwendung, die zu offenen Berichten (basierend auf LogiInfo Reporting-Tool) in einem neuen Fenster umleitet. Ein Servlet-Filter wurde angewendet, um bestimmte Parameter anzuhängen/zu modifizieren, bevor sie mit dem gestartet werden. In meinen Testumgebungen funktioniert das perfekt und alle Berichte starten wie erwartet. In der Client-Umgebung wird jedoch nur ein Teil der Berichte nicht gestartet und zeigt den Fehler 403 Forbidden im neuen Fenster an. Nach einigen Debugging habe ich festgestellt, dass die URL auch nicht geändert wird, da die doFilter() selbst nicht für diese Teilmenge von Berichten aufgerufen wird (in der Tat erhält der Tomcat nicht einmal die 'GET' Anfrage für diese URLs).Servlet-Filter arbeitet selektiv

(UPDATE) Der Hauptunterschied zwischen den beiden ist:

  1. , dass der Test-Server auf Tomcat 7.0 läuft, während der Client auf Umwelt 8.0 läuft.
  2. der Webserver Apache 2.2 in der Testumgebung & 2.4 Apache in der Client-Umgebung

Es ist ein seltsames Problem, und ich bin nicht sicher, wo sie suchen müssen, da es absolut keinen Unterschied in .xhtml Seiten ist, dass Rufen Sie diese Berichte oder ihr Javascript auf. Irgendeine Idee, warum dieses selektive Verhalten im Spiel ist?

+0

Debugging noch dieses Problem und erkannte, dass der 403-Fehler vom Apache-Webserver und nicht vom Tomcat-Server stammt. Auch seine Version unterscheidet sich von der Testumgebung (aktualisiert die Frage mit dieser Information). – javshak

Antwort

0

Es stellte sich heraus, dass es sich um ein Problem mit der Firewall handelte und nichts mit den Apache- oder Tomcat-Servern zu tun hatte. Es blockierte die URLs einiger Berichte, da sie einfache Anführungszeichen enthielten.