WebModule interface

The WebModule interface allows modules to dynamically configure Filters, Servlets and ServletContextListeners. The @javax.annotation.Priority annotation is used to ensure that the request chain is sequenced correctly.

Table 1. WebModules (highest priority first, ie lowest value of @Priority)
Web module listener? servlet? filter? @Priority Notes

WebModule
Keycloak

N

N

Y
/*

FIRST + 100

Either this, spring or shiro

WebModule
Shiro

Y

N

Y
/*

FIRST + 100

Either this, spring or keycloak

WebModule
SpringSecurity

Y

N

Y
/*

FIRST + 100

Either this, shiro or keycloak

WebModule
LogOnExceptionLogger

N

N

Y
/wicket & /restful

EARLY - 100

Filter is passthru, with no side-effects.
Mapping depends on which viewers configured.

WebModule
Cors

N

N

Y
/wicket & /restful

EARLY

Mapping depends on which viewers configured.

WebModule
JaxrsResteasy4

Y

Y
/restful

Y (x2)
/restful

MIDPOINT - 80

Filters mapped to servlet

WebModule
TemplateResources

N

Y
*.thtml

Y
*.thtml

MIDPOINT - 100

WebModule
Wicket

N

N

Y
/wicket

MIDPOINT - 80

WebModule
ServerSentEvents

N

Y
/sse

N

MIDPOINT

servlet only, so order doesn’t really matter.

WebModule
H2Console

N

Y
/db/*

N

MIDPOINT

servlet only, so order doesn’t really matter.