* Return canonical status 429 in the default block handler of sentinel-web-servlet-adapter.
* Add a `csp.sentinel.web.servlet.block.page.http.status` property to support customized block status configuration.
- Update the `GatewayParamParser` to support matching the request item.
- Update the internal logic of converting gateway rules to parameter flow rules. The unified mismatched parameters (`SentinelGatewayConstants.GATEWAY_NOT_MATCH_PARAM`) will be configured as an exception item with a large threshold (indicating always pass).
- Add a `GatewayRegexCache` to cache the compiled regex for performance.
- Constant rename: separate URL matching strategy from parameter matching strategy
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Add `getCookieValue` method in RequestItemParser interface and update GatewayParamParser
- Add cookie parsing logic for Spring Cloud Gateway and Zuul
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Separate converted parameter rules from ParamFlowManager. Now the converted rules will be kept in GatewayRuleManager directly.
- Add a GatewayFlowSlot to do separate flow checking for generated rules.
- Refactor rule converting mechanism: now gateway rules in normal mode (without parameter) will also be converted to a parameter flow rule. The index will be the last (the last position). In GatewayParamParser we put a constant value to the last position.
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Now the adapter is based-on sentinel-api-gateway-adapter-common and supports both proxyId and customized APIs
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- Update test cases (use assertEquals(e, a, delta) instead)
- Also add `totalPass` method in Node interface
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
- The implementation leverages Sentinel Reactor Adapter. Two main components: SentinelWebFluxFilter and SentinelBlockExceptionHandler
Signed-off-by: Eric Zhao <sczyh16@gmail.com>
* Add reactive adapter implementation for Project Reactor (Mono/Flux) including a reactor transformer and an experimental `ReactorSphU`
* Add an `InheritableBaseSubscriber` that derives from the original BaseSubscriber of reactor-core
* Add basic test cases for reactor adapter
* Add Sentinel context enter support for EntryConfig in reactor transformer
Signed-off-by: Eric Zhao <sczyh16@gmail.com>