在Java中移除HTTP响应头

3
有没有一种方法可以删除 HTTP 响应头,例如 Server 和 X-Powered-By?
我的应用程序使用 Weblogic 服务器。我使用 Spring MVC 框架和 Hibernate 进行 Java 编程,并使用 JSP 作为视图。

我想到的是编写一个过滤器来处理这个问题。 - Vasilen Donchev
2个回答

5
取决于标头添加的位置。如果在您的应用程序内部,您可以使用Spring MVC拦截器在控制器调用后删除它们。如果在应用程序外部,您可以尝试在web.xml中配置一个Java EE过滤器(示例是安全性,但该方法也适用于您的用例)。如果在此之后添加了它,您可能需要查看您的Web前端(Apache、IIS等)以配置一个过滤器。 更新 这个答案描述了一种删除特定标头的方法,因为HttpServletResponse接口不允许明确删除标头。您需要进行一些试错来确定哪部分堆栈正在添加标头。

我提到的标题并没有明确添加。它们会在响应中显示出来。出于安全考虑,需要明确地阻止它们向用户显示。 - user1609085
我已经更新了。无论是否显式添加,您都需要确定它作为副作用被设置在哪里。 - Peter Bratton
请帮我解决这个问题:http://stackoverflow.com/questions/20421329/xpoweredby-not-working-in-web-logic - jackyesind

2
如果您将具体的responseHeader设置为null,它将被删除/在响应标头中不可见。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接