如何删除(复制)X-Powered-By:JSF / 2.0

时间:2012-01-13 04:50:48

标签: jsf-2 http-headers glassfish-3

在我的例子中,我有 Glassfish 3.1.1 / Mojarra 2.1.3

我可以在网络侦听器中删除Glassfish管理控制台中的X-Powered-By(因此它不会显示长文本:

Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.1 Java/Sun Microsystems Inc./1.6)

但它仍然显示(是,两次):

X-Powered-By: JSF/2.0
X-Powered-By: JSF/2.0

我使用Jersey和JAXB来公开一些Web服务,并使用@WebServlet Annotation部署了一些servlet,但我认为它们不会添加任何内容。

它不是由mod_jk或Apache生成的,因为即使直接连接到应用程序端口,我也会获得这些头文件(localhost:8080)

Glassfish中是否有典型的模块可以做到这一点?如何删除这些标题?

谢谢

1 个答案:

答案 0 :(得分:11)

这是由Mojarra设定的。您可以通过在webapp的com.sun.faces.sendPoweredByHeader中将上下文参数false设置为web.xml来禁用它。

<context-param>
    <param-name>com.sun.faces.sendPoweredByHeader</param-name>
    <param-value>false</param-value>
</context-param>

但是,它发送两次值对我来说是一个谜。这不是默认行为,在技术上也是不可能的(因为它表明ExternalContextImpl在同一响应中构造了两次)。也许mod_jk做错了。