2017-07-26 53 views
0

我有一個Spring/JSF應用程序重定向到一個新窗口中打開報告(基於LogiInfo報告工具)。在使用resp.sendRedirect(reportURL); 啓動之前,已經應用了servlet過濾器來附加/修改某些參數。在我的測試環境中,此功能非常完美,所有報告都按預期啓動。但是,在客戶端環境中,部分報告不會啓動,最終會在新窗口中顯示403 Forbidden錯誤。經過一些調試後,我意識到URL也沒有被修改,因爲doFilter()本身沒有被這些子報告調用(事實上Tomcat甚至沒有收到這些URL的'GET'請求)。Servlet過濾器有選擇地工作

(UPDATE) 兩者之間的主要區別是:

  1. 測試服務器在Tomcat 7.0運行,而客戶端環境上運行8.0。
  2. Web服務器是Apache 2.2的測試環境&的Apache 2.4的客戶端環境

這是一個奇怪的問題,我不知道去哪裏找,因爲在.xhtml頁絕對沒有差調用這些報告或他們的JavaScript。 有關這種選擇性行爲爲何發揮作用的任何想法?

+0

仍在調試此問題,並意識到403錯誤源自Apache Web服務器而不是Tomcat服務器。它的版本與測試環境不同(使用該信息更新了問題)。 – javshak

回答

0

原來是與防火牆相關的問題,與Apache或Tomcat服務器無關。它阻止了一些報告中的URL,因爲它們中有單引號。