我们正在 JBoss WildFly 上运行 AngularJS 应用程序。它在我们的测试环境和生产环境中都运行良好。然而,现在在生产中出现了一个奇怪的错误 403 问题。
用户可以通过 REST 请求加载数据。在一个网站上,设置了一个 cookie 来存储过滤选项。设置 cookie 后,所有后续请求都会失败,并显示错误 403(禁止访问)。
在本地和我们的远程测试服务器上不存在此问题。在生产中它曾经也可以工作,但一定有什么变化了。这种情况发生在所有浏览器和所有用户身上,所以我假设我们的 IT 部门一定更改了服务器配置。但是,我无法找出问题的根本原因。
服务器使用以下标头进行响应:
Server: Apache
X-Powered-By: Undertow/1
但我知道我们正在运行 JBoss WildFly。JBoss 日志和浏览器的开发人员控制台中都没有任何有用的条目。我不管理服务器基础设施,但我需要紧急解决这个问题。
我的问题是:
JBoss 在哪里记录对 Web 服务器的请求?是否有其他访问日志文件(
/var/log/apache2/error.log
不存在)?为什么标头声称服务器是 Apache?
standalone.xml
JBoss 的文件设置了“WildFly/9”。中间是否有另一台服务器处理请求?我如何才能找到答案?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 映射角色失败了。不过,仍然需要进一步调查。
但至少增加日志级别(如上所述)有助于我调试。