如何在JBoss 6.1中设置请求头?配置文件修改位置咨询
JBoss 6.1 请求头配置指南
全局请求头配置(所有应用生效)
正确的配置文件是 default\deploy\jbossweb.sar\web.xml,而非你之前修改的server.xml。步骤如下:
添加过滤器定义
打开该文件,在<filter>区块中添加请求头过滤器。如果是设置安全类标准头,可直接用JBoss内置的HttpHeaderSecurityFilter:<filter> <filter-name>GlobalHeaderFilter</filter-name> <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class> <!-- 示例:设置X-Frame-Options --> <init-param> <param-name>antiClickJackingOption</param-name> <param-value>SAMEORIGIN</param-value> </init-param> </filter>如果需要自定义任意请求头,需先编写一个简单的过滤器类:
import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class CustomGlobalHeaderFilter implements Filter { public void init(FilterConfig config) throws ServletException {} public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; // 添加自定义请求头 response.setHeader("X-Custom-Global-Header", "GlobalValue"); chain.doFilter(req, res); } public void destroy() {} }将编译后的类打包成jar,放到
default\lib目录下,再在jbossweb.sar\web.xml中配置这个过滤器。添加过滤器映射
确保过滤器对所有请求生效,在<filter-mapping>区块中添加:<filter-mapping> <filter-name>GlobalHeaderFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
单个应用请求头配置(仅目标应用生效)
如果只需给特定应用设置请求头,直接修改该应用的WEB-INF/web.xml:
- 添加过滤器定义(可复用上面的自定义过滤器类,或内置过滤器)
- 添加过滤器映射到该应用的所有请求:
<filter-mapping> <filter-name>AppSpecificHeaderFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
你之前配置无效的原因
- 修改
server.xml:该文件用于配置连接器、引擎等容器核心组件,不是过滤器的全局配置位置,因此无效。 - 修改
http-invoker.sar\invoker.war\WEB-INF/web.xml:这个配置仅对invoker.war这个系统应用生效,不会作用于你的业务应用。
配置完成后,重启JBoss 6.1即可生效。
内容的提问来源于stack exchange,提问作者Anshul Mishra
相关产品推荐
相关产品推荐

