|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- # Sentinel Web Servlet Filter
-
- Sentinel provides Servlet filter integration to enable flow control for web requests.
- Add the following dependency in `pom.xml` (if you are using Maven):
-
- ```xml
- <dependency>
- <groupId>com.alibaba.csp</groupId>
- <artifactId>sentinel-web-servlet</artifactId>
- <version>x.y.z</version>
- </dependency>
- ```
-
- To activate the filter, you can simply configure your `web.xml` with:
-
- ```xml
- <filter>
- <filter-name>SentinelCommonFilter</filter-name>
- <filter-class>com.alibaba.csp.sentinel.adapter.servlet.CommonFilter</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>SentinelCommonFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
- ```
-
- For Spring web applications you can configure with Spring bean:
-
- ```java
- @Configuration
- public class FilterConfig {
-
- @Bean
- public FilterRegistrationBean sentinelFilterRegistration() {
- FilterRegistrationBean<Filter> registration = new FilterRegistrationBean<>();
- registration.setFilter(new CommonFilter());
- // Set the matching URL pattern for the filter.
- registration.addUrlPatterns("/*");
- registration.setName("sentinelCommonFilter");
- registration.setOrder(1);
- // Set whether to support the specified HTTP method prefix for the filter.
- registration.addInitParameter(CommonFilter.HTTP_METHOD_SPECIFY, "false");
- return registration;
- }
- }
- ```
-
- When a request is blocked, Sentinel servlet filter will display a default page indicating the request is rejected.
- The HTTP status code of the default block page is **429 (Too Many Requests)**. You can customize it
- via the `csp.sentinel.web.servlet.block.status` configuration item (since 1.7.0).
-
- If customized block page is set (via `WebServletConfig.setBlockPage(blockPage)` method),
- the filter will redirect the request to provided URL. You can also implement your own
- block handler (the `UrlBlockHandler` interface) and register to `WebCallbackManager`.
-
- The `UrlCleaner` interface is designed for clean and unify the URL resource.
- For REST APIs, you have to clean the URL resource (e.g. `/foo/1` and `/foo/2` -> `/foo/:id`), or
- the amount of context and resources will exceed the threshold.
-
- If you need to exclude some URLs (that should not be recorded as Sentinel resources), you could also
- leverage the `UrlCleaner` interface. You may unify the unwanted URLs to the empty string `""` or `null`,
- then the URLs will be excluded (since Sentinel 1.6.3).
-
- The `RequestOriginParser` interface is useful for extracting request origin (e.g. IP or appName from HTTP Header)
- from HTTP request. You can implement your own `RequestOriginParser` and register to `WebCallbackManager`.
|