Soul网关(十六)---- 请求的拦截和重写

waf 插件

简介

waf 插件是 soul 的前置插件,主要用来拦截非法请求,或者异常请求,并且给与相关的拒绝策略,是 soul 网关的用来对流量实现防火墙功能的核心实现。

使用

1)首先在 soul-admin 中开启 waf 插件
2)soul-bootstrap 的 pom 文件中添加 waf 插件starter 的依赖
<dependency>
    <groupId>org.dromara</groupId>
    <artifactId>soul-spring-boot-starter-plugin-waf</artifactId>
    <version>${project.version}</version>
</dependency>
3)然后在 soul-admin 的 waf 插件中添加 过滤器 和 规则 对非法请求/异常请求进行拒绝

这里将 URL 为 /waf/test 的请求设置为拒绝,返回的状态码设置为 429:

在这里插入图片描述

请求 http://localhost:9195/waf/test 便会被直接拒绝:

{
   
   
  "code": 426,
  "message": " You are forbidden to visit",
  "data": null
}

源码分析

waf 插件关键源码解读:
protected Mono<Void> doExecute(final ServerWebExchange exchange, final SoulPluginChain chain, final SelectorData selector, final RuleData rule) {
   
   
  	// 拿到流量防火墙配置,默认是黑名单模式
    WafConfig wafConfig = Singleton.INST.get(WafConfig.class);
  
    if (Objects.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值