Waf Plugin
Description#
- Wafis the core implementation of gateway to realize firewall function for network traffic.
Plugin Setting#
Please refer to the deployment document, choose a way to start shenyu-admin. For example, through Local Deployment to start the Apache ShenYu management system.
- In - shenyu-adminBasicConfig --> plugin ->- wafset to enable.If you don't want to use this function, please disable this plugin in the- shenyu-admin. 
- Add configuration mode in plugin editing. 
{"model":"black"}# model can be 'black' or 'mixed'# The default mode is blacklist mode; If setting is mixed, it will be mixed mode. We will explain it specifically below.Add Dependency#
- Introducing wafdependency in the pom.xml of the gateway.
  <!-- apache shenyu waf plugin start-->  <dependency>      <groupId>org.apache.shenyu</groupId>      <artifactId>shenyu-spring-boot-starter-plugin-waf</artifactId>      <version>${project.version}</version>  </dependency>  <!-- apache shenyu waf plugin end-->Waf Plugin Configuration#
For more instructions on selector and rule configuration, please refer to: Selector And Rule Config, here only some fields are introduced.
Waf plugin rule configuration page:

For requests that are denied access by Waf , the response header status code is: 403.
Black Model#
- When modelis set toblackmode, only the matched traffic will execute the rejection policy, and the unmatched traffic will be skipped directly.
- The Handlerfeild in the rule configuration is invalid and can be configured to be empty.
Mixed Model#
- When - modelis set to- mixedmode, all traffic will pass through waf plugin. For different matching traffic, users can set whether to reject or pass.
- The - Handlerfeild in the rule configuration must be configured:- permission: The handle logic that matches the rule.- reject: deny access,- allow: allow access.
- statusCode: When access is denied, the value of the code field in the response body.- Will not modify the status code of the response header.- e.g.: - statusCode=10001,The rejected response body is :- {"code":10001,"message":"You are forbidden to visit"}
 
Situation#
- Wafis also the pre-plugin of- ShenYu, which is mainly used to intercept illegal requests or exception requests and give relevant rejection policies.
- When faced with replay attacks, you can intercept illegal ipandhost, and set reject strategy according to matchediporhost.
- How to determine ipandhost, please refer to: parsing-ip-and-host