0

WildFly Web 配置表达式(例如重写过滤器)是否支持完整的变量列表?像 %U, %h, %p...

<filters>
<rewrite name="http-to-https" redirect="true" target="https://myhostname:8443%U"/>
</filters>

<server name="default-server">
    <host name="default-host" alias="localhost">
        ...
        <filter-ref name="http-to-https" predicate="equals(%p,8080)"/>
4

2 回答 2

1

当前的 WildFly (15) 使用 Undertow 2.0,因此请查看有关谓词的 Undertow 文档:http: //undertow.io/undertow-docs/undertow-docs-2.0.0/predicates-attributes-handlers.html

于 2019-02-07T08:33:43.657 回答
1

这些是AccessLogHandler.java用于日志的属性。

  • %a - 远程 IP 地址
  • %A - 本地 IP 地址
  • %b - 发送的字节数,不包括 HTTP 标头,如果没有发送任何字节,则为“-”
  • %B - 发送的字节数,不包括 HTTP 标头
  • %h - 远程主机名
  • %H - 请求协议
  • %l - 来自 identd 的远程逻辑用户名(总是返回 '-')
  • %m - 请求方法
  • %p - 本地端口
  • %q - 查询字符串(不包括 '?' 字符)
  • %r - 请求的第一行
  • %s - 响应的 HTTP 状态码
  • %t - 日期和时间,以通用日志格式格式
  • %u - 已通过身份验证的远程用户
  • %U - 请求的 URL 路径
  • %v - 本地服务器名称
  • %D - 处理请求所花费的时间,以毫秒为单位
  • %T - 处理请求所用的时间,以秒为单位
  • %I - 当前请求线程名称(可以稍后与堆栈跟踪进行比较)

    此外,调用者可以为常用模式指定以下别名之一:

    • 常见的——%h %l %u %t "%r" %s %b
    • 结合—— %h %l %u %t "%r" %s %b "%{i,Referer}" "%{i,User-Agent}"

    还支持从 cookie、传入标头或会话中写入信息。
    它仿照 apache 语法:

    • %{i,xxx}对于传入的标头
    • %{o,xxx}用于传出响应标头
    • %{c,xxx}对于特定的 cookie
    • %{r,xxx}xxx 是 ServletRequest 中的一个属性
    • %{s,xxx}xxx 是 HttpSession 中的一个属性

  • 于 2019-02-06T21:30:55.663 回答