如何识别 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?standalone.xmlJBoss 的文件设置了“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 映射角色失败了。不过,仍然需要进一步调查。

但至少增加日志级别(如上所述)有助于我调试。

相关内容