17.12. 配置请求转储处理程序


RequestDumping handler (io.undertow.server.handlers.RequestDumpingHandler)记录请求的详细信息,以及 JBoss EAP 中 Undertow 处理的对应响应对象。

重要

虽然此处理程序可用于调试,但也可能会记录敏感信息。在启用此处理程序时请注意这一点。

注意

RequestDumping 处理程序取代了之前版本的 JBoss EAP 中的 RequestDumperValve

您可以在 JBoss EAP 或单独的应用中直接在服务器级别配置 RequestDumping 处理程序。

17.12.1. 在服务器上配置请求转储处理程序

RequestDumping 处理程序应配置为表达式过滤器。要将 RequestDumping handler 配置为表达式过滤器,您需要执行以下操作:

使用 RequestDumping Handler 创建新的 Expression Filter
/subsystem=undertow/configuration=filter/expression-filter=requestDumperExpression:add(expression="dump-request")
在 Undertow Web 服务器中启用 Expression Filter
/subsystem=undertow/server=default-server/host=default-host/filter-ref=requestDumperExpression:add
重要

当以这种方式启用 RequestDumping 处理程序时,将记录 Undertow Web 服务器处理的所有请求和对应的响应。

为特定 URL 配置请求转储处理程序

除了记录所有请求外,您还可以使用表达式过滤器来记录特定 URL 的请求和对应的响应。这可以通过在您的表达式中使用 predicate,如路径、 path -prefixpath-suffix 来完成。例如,如果要记录对 /myApplication/test 的所有请求和对应的响应,您可以在创建表达式过滤器时使用表达式 "path (/myApplication/test)-> dump-request" 而不是表达式 " dump-request"。这只会将带有路径的 /myApplication/test 直接请求发送到 RequestDumping 处理程序。

17.12.2. 在应用程序中配置请求转储处理程序

除了在服务器上配置 RequestDumping 处理程序外,您还可以在单个应用程序中进行配置。这会将处理程序的范围限制为仅限该特定应用。请求转储 处理程序应在 WEB-INF/undertow-handlers.conf 中配置。

要在 WEB-INF/undertow-handlers.conf 中配置 RequestDumping 处理程序,以记录此应用的所有请求和对应响应,请将以下表达式添加到 WEB-INF/undertow-handlers.conf

WEB-INF/undertow-handlers.conf示例

dump-request

要将 WEB-INF/undertow-handlers.conf 中的 RequestDumping 处理程序配置为仅记录对此应用内特定 URL 的请求和对应的响应,您可以在表达式中使用路径、 path -prefixpath-suffix 等 predicates。例如,要记录要在应用程序中 测试 的所有请求和对应的响应,可以使用以下带有 path predicate 的表达式:

WEB-INF/undertow-handlers.conf示例

path(/test) -> dump-request

注意

当在应用的 WEB-INF/undertow-handlers.conf 中定义的表达式中使用路径、path -prefixpath-suffix 等 predicates 时,使用的值将相对于应用程序的上下文根。例如,如果应用程序的上下文 root 是 myApplication,且带有表达式 路径(/test)->在 WEB-INF/undertow-handlers.conf 中配置的 dump-request,它将仅记录请求并对应响应 /myApplication/test

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.