4.5.7. 更改 HTTP 方法调用行为
JBoss EAP 6.4(包括 JBoss Web 作为 Web 服务器)默认允许 HTTP TRACE 方法调用。
Undertow(替换 JBoss Web 作为 JBoss EAP 7 中的 Web 服务器)默认不允许 HTTP TRACE 方法调用。此设置使用 undertow 子系统中 http 属性进行配置。可以通过查看以下 -listener 元素的 disallowed-methodsread-resource 命令的输出来确认这一点。注意 disallowed-methods 属性的值为 ["TRACE"]。
/subsystem=undertow/server=default-server/http-listener=default:read-resource
{
"outcome" => "success",
"result" => {
"allow-encoded-slash" => false,
"allow-equals-in-cookie-value" => false,
"allow-unescaped-characters-in-url" => false,
"always-set-keep-alive" => true,
"buffer-pipelined-data" => false,
"buffer-pool" => "default",
"certificate-forwarding" => false,
"decode-url" => true,
"disallowed-methods" => ["TRACE"],
...
}
}
若要在 JBoss EAP 7 及更高版本中启用 HTTP TRACE 方法调用,您必须运行以下命令,从 disallowed-methods 属性列表中删除"TRACE"条目:
/subsystem=undertow/server=default-server/http-listener=default:list-remove(name=disallowed-methods,value="TRACE")
当再次运行 read-resource 命令时,您会注意到 TRACE 方法调用不再在禁止的方法列表中。
/subsystem=undertow/server=default-server/http-listener=default:read-resource
{
"outcome" => "success",
"result" => {
"allow-encoded-slash" => false,
"allow-equals-in-cookie-value" => false,
"allow-unescaped-characters-in-url" => false,
"always-set-keep-alive" => true,
"buffer-pipelined-data" => false,
"buffer-pool" => "default",
"certificate-forwarding" => false,
"decode-url" => true,
"disallowed-methods" => [],
...
}
}
如需有关 HTTP 方法默认行为的更多信息,请参阅 JBoss EAP 配置指南中的 HTTP 方法默认行为。