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