Configuring a Custom Undertow Filter in WildFly

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

Internal

Example


https://github.com/NovaOrdis/playground/tree/master/wildfly/custom-undertow-filter

Overview

In order to install a custom filter in WildFly Undertow instance, you will need to wrap the filter class in a WildFly module, deploy the module and configure the Undertow subsystem to use the custom filter.

Write the Filter Class

Create and Deploy a WildFly Module

In order to be made available to the Undertow subsystem, the custom filter code must be deployed as a WildFly Module. For more details on how to build and deploy a custom module, see:

Writing a Custom WildFly Module

Configure the Undertow Subsystem

Declare the Filter in the <filters> Section

...
<subsystem xmlns="urn:jboss:domain:undertow:3.0">
   ...
   <filters>
      ...
      <filter name="response-time" 
              class-name="com.novaordis.playground.wildfly.undertow.customfilter.ResponseTime" 
              module="com.novaordis.playground.wildfly.undertow.customfilter"/>
      </filters>
</subsystem>
...

Declare a Reference to the Filter for a Specific Host

...
<subsystem xmlns="urn:jboss:domain:undertow:3.0">
   <server name="...">
      ...
      <host name="...">
           <location .../>
           ...
           <filter-ref name="response-time"/>
           ...
      </host>
   </server>
   ...
</subsystem>
...

Declare Undertow's Dependency on the Module that Contains the Filter