如何確定 JBoss WildFly 伺服器上錯誤 403 的原因?

如何確定 JBoss WildFly 伺服器上錯誤 403 的原因?

我們正在 JBoss WildFly 上運行 AngularJS 應用程式。它過去在我們的測試環境和生產環境中都運作良好。然而,現在生產中卻出現了一個奇怪的錯誤 403 問題。

使用者可以透過REST請求載入資料。在一個網站上,設定了一個 cookie 來儲存過濾選項。設定 cookie 後,所有後續請求都會失敗,並顯示錯誤 403(禁止)。

在本機和我們的遠端測試伺服器上不存在此問題。在生產中它也曾經有效,但一定有些東西改變了。所有瀏覽器和所有使用者都會發生這種情況,因此我認為我們的 IT 部門一定更改了伺服器配置。但是,我無法找出問題的根本原因。

伺服器使用以下標頭進行回應:

Server: Apache
X-Powered-By: Undertow/1

但我知道我們正在運行 JBoss WildFly。 JBoss 日誌和瀏覽器的開發人員控制台中都沒有有用的條目。我不管理伺服器基礎設施,但我需要緊急解決這個問題。

我的問題是:

  1. JBoss 在哪裡記錄對 Web 伺服器的請求?是否有額外的訪問日誌檔案(/var/log/apache2/error.log不存在)?

  2. 為什麼標頭聲稱伺服器是 Apache? JBoss的檔案standalone.xml設定為「WildFly/9」。中間是否有另一個伺服器處理請求?我怎麼才能找到答案?

  3. JBoss 或 Apache 是否記錄了此類錯誤的原因?我必須提高日誌等級嗎?

一旦我刪除了cookie,網站就恢復正常了。我確信這只是一個小配置問題,因為它以前有效,但我現在無法弄清楚。非常感謝任何提示。

答案1

將此區塊加入standalone.xml子系統urn:jboss:domain:logging:3.0

<logger category="org.jboss.security">
  <level name="TRACE"/>
</logger>

重新啟動伺服器,以便它採用新配置。

現在執行互動會導致錯誤 403 server.log。這至少幫助我了解了問題根本原因的詳細資訊。似乎從 Active Directory 映射角色失敗。不過,仍需進一步調查。

但至少如上所述,提高日誌等級有助於我進行調試。

相關內容