A little collection of useful servlet filters:
First add this to your pom.xml (double check version number with badge)
<dependency>
    <groupId>io.github.jdlopez</groupId>
    <artifactId>miscservletfilter</artifactId>
    <version>2.0.0</version>
</dependency>
Each filter has its own configuration set.
Check filter code before use:
- es.jdl.analytics.CollectFilter
 - es.jdl.auth.BasicAuthenticationFilter
 - es.jdl.auth.HeaderAuthenticationFilter
 - es.jdl.response.AddHeadersFilter
 - es.jdl.security.BlockingFilter
 
All filters can be configured using configFile initparam. It can be set with java system properties placeholders.
Ex:
configFile=${user.home}/myconfig.properties
Config content:
HeaderAuthenticationFilter.key.SOME_KEY=Response returned in header. Could be users name or whatever
Prefix Api Key entries can be changed with prefixApiKey parameter.
Config content:
AddHeadersFilter.header.MY_HEADER=header value
Header can be changed with prefixHeader parameter.
Config content:
BlockingFilter.intervalMillis=Max Interval between hits from same IP in millis. Default 1h 
BlockingFilter.globalMaxRequest=Max number of hits  from same IP in interval. Default 1000
BlockingFilter.globalMaxSize=IP table max size. To reduce memory allocation
mvn clean deploy -e -P ossrh 
- 2.0.0
 
Updated servlet-api to jakarta 6.0.0
- 1.1.0
 
Added some mapping utils: BeanMapper.java