在JBoss 7中创建一个全局过滤器

时间:2014-03-15 15:46:16

标签: jboss jboss7.x servlet-filters

我想创建一个全局自定义过滤器,捕获(用于检查/修改等)服务器上所有Web应用程序的http-headers。 我试图将我的过滤器应用为standalone.xml中的全局模块,但它不起作用

<subsystem xmlns="urn:jboss:domain:ee:1.1">  
            <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement>  
            <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>  
            <global-modules>  
                 <module name="com.myfilter.filter" slot="main"/>  
            </global-modules>  
</subsystem>  

请帮帮我!

1 个答案:

答案 0 :(得分:1)

全局模块只会向全局类路径添加内容,不会将其用于请求。

您要求的是Java EE规范之外的内容。一些服务器支持诸如规范扩展之类的功能。 Tomcat和JBoss使用Valves获得了如此广泛的支持。您应该能够通过实现Tomcat Valve,将其作为模块安装,然后将其配置为JBoss,如instructed here来完成您所需的工作:

<subsystem xmlns="urn:jboss:domain:web:1.4" default-virtual-server="default-host" native="false">
    <valve name="myvalve" module="org.jboss.web-valves" class-name="org.apache.catalina.valves.AccessLogValve">
        <param param-name="prefix" param-value="catalina_access_log."/>
        <param param-name="suffix" param-value=".txt"/>
    </valve>
            . . . .
</subsystem>