anchor.diff:  
   ==== first
   
  -The *first* is the default strategy. This the default strategy which only execute one rate limit.
  -So if you check in the first rate limit if the user is authenticated and the user is not you know that the other rate-limits handles
  -authenticated users.
  +The *first* is the default strategy. This the default strategy which only executes one rate limit configuration.
   
   ==== all
   
  
positive.code: have to write a single line of code. For complex condition this project uses the 
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html[Spring Expression Language].
  
  
  == Autoconfiguration:
  
  * Detects the CachManger(JCache) and configures it for Bucket4j. You can configure the different CacheManager with https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-caching.html[spring-boot-starter-cache]
  * *Servlet Filter* or *ZuulFilter* registration for limiting the rate
  * Configuration via properties
  ** cache name
  ** url
  ** multiple bandwith (capacity, time unit)
  ** predefined filter types
  
  == Bucket4j properties
  
  
negative.code: 
  ==== Expression
  
  The expression based filter type provides the most flexible one and uses the Spring Expression Language (SpEL). https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-spel-compilation[The expression compiles to a Java class which will be used].
  It provides an easy way to configure the throttling in different environments without writing one line of code.
  
  *Limiting based on IP-Address*:
  [source]
  