如何删除 Payara Micro 172 中的服务器 header?
How can I remove the Server header in Payara Micro 172?
我想从 Payara Micro 的输出中删除服务器 header。
例如,它报告:
HTTP/1.1 200 OK
Server: Payara Micro #badassfish
我想删除那行 Server
。
我看到 issue 32 provided the capability in theory to disable this. The associated pull request 似乎确实表明正在咨询某种 属性 来禁用它。我可以由此推断,如果这是一个 full-fledged 服务器并单击某处的复选框,我大概可以进入管理 GUI。
但我是 运行 Payara Micro,需要在启动时从命令行完全配置。
我缺少的是简单的 "put this on the command line" 类型的说明,我似乎无法在任何地方找到它。我可以使用 glassfish-web.xml
-as-modified-by-Payara 中的设置吗?还是命令行开关?或者我可以在 pre-boot 脚本中设置特定的 asadmin
属性?
想法?
您引用的更改链接到 pull request,它向 http-listener 添加了一个布尔值 server-header
属性,这将禁用 header。
没有本机 asadmin 命令来设置此 属性,因此您需要使用 asadmin set
命令,并为要修改的侦听器提供正确的点分名称。要找出这是什么,您可以使用带通配符的 get
命令,并使用 grep 获取您想要的值,如下所示,使用 Payara Server:
➜ ~ /opt/payara/server/171.1/bin/asadmin get "*" | grep server-header
configs.config.default-config.network-config.protocols.protocol.http-listener-2.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.sec-admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-2.http.server-header=true
由于 default-config 只是一个模板并没有被使用,我们需要来自 server-config
的监听器。 http-listener-1
默认用于 HTTP,http-listener-2
默认用于 HTTPS。要在 Payara Micro 中修改 server-header
属性,您需要使用以下命令创建一个文件(请注意,Payara Micro 默认只有一个名为 http-listener
的侦听器):
set configs.config.server-config.network-config.protocols.protocol.http-listener.http.server-header=false
然后您可以使用预启动命令文件应用这些,如下所示:
java -jar /opt/payara/micro/173/payara-micro.jar --prebootcommandfile myCommands.txt
您可能还希望通过相同的方法禁用 xpowered-by
属性。
我想从 Payara Micro 的输出中删除服务器 header。
例如,它报告:
HTTP/1.1 200 OK
Server: Payara Micro #badassfish
我想删除那行 Server
。
我看到 issue 32 provided the capability in theory to disable this. The associated pull request 似乎确实表明正在咨询某种 属性 来禁用它。我可以由此推断,如果这是一个 full-fledged 服务器并单击某处的复选框,我大概可以进入管理 GUI。
但我是 运行 Payara Micro,需要在启动时从命令行完全配置。
我缺少的是简单的 "put this on the command line" 类型的说明,我似乎无法在任何地方找到它。我可以使用 glassfish-web.xml
-as-modified-by-Payara 中的设置吗?还是命令行开关?或者我可以在 pre-boot 脚本中设置特定的 asadmin
属性?
想法?
您引用的更改链接到 pull request,它向 http-listener 添加了一个布尔值 server-header
属性,这将禁用 header。
没有本机 asadmin 命令来设置此 属性,因此您需要使用 asadmin set
命令,并为要修改的侦听器提供正确的点分名称。要找出这是什么,您可以使用带通配符的 get
命令,并使用 grep 获取您想要的值,如下所示,使用 Payara Server:
➜ ~ /opt/payara/server/171.1/bin/asadmin get "*" | grep server-header
configs.config.default-config.network-config.protocols.protocol.http-listener-2.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.admin-listener.http.server-header=true
configs.config.default-config.network-config.protocols.protocol.sec-admin-listener.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-1.http.server-header=true
configs.config.server-config.network-config.protocols.protocol.http-listener-2.http.server-header=true
由于 default-config 只是一个模板并没有被使用,我们需要来自 server-config
的监听器。 http-listener-1
默认用于 HTTP,http-listener-2
默认用于 HTTPS。要在 Payara Micro 中修改 server-header
属性,您需要使用以下命令创建一个文件(请注意,Payara Micro 默认只有一个名为 http-listener
的侦听器):
set configs.config.server-config.network-config.protocols.protocol.http-listener.http.server-header=false
然后您可以使用预启动命令文件应用这些,如下所示:
java -jar /opt/payara/micro/173/payara-micro.jar --prebootcommandfile myCommands.txt
您可能还希望通过相同的方法禁用 xpowered-by
属性。