繁体   English   中英

WSO2 每个最终用户的自定义节流策略 IP X-Forwarded-For 中的地址

[英]WSO2 Custom Throttle Policy For Each End-User IP Address In X-Forwarded-For

我使用 WSO2 API Managet 2.6.0 作为我的 Spring Boot REST API 前面的 API 网关。

我想添加一个自定义节流策略来设置每个最终用户 ip 地址的速率限制,该地址由面向 inte.net 的 WAF 放入请求 header X-Forwarded-For中。

WSO2 文档显示了一些用 Siddhi 语言编写的自定义策略示例,但没有足够的示例。

我能找到的最详细的文章是https://dzone.com/articles/implement-user-based-throttling-with-wso2-api-mana ,它显示了通过 userId 进行速率限制的示例。

FROM RequestStream
SELECT userId, userId as throttleKey
INSERT INTO EligibilityStream;
​
FROM EligibilityStream#throttler:timeBatch(1 min)
SELECT throttleKey, (count(userId) >= 5) as isThrottled, expiryTimeStamp group by throttleKey
INSERT ALL EVENTS into ResultStream;

上面的 Siddhi 查询告诉 WSO2 从请求中提取userId并将其用作 throttleKey 并限制每个 throttleKey 每 1 分钟少于 5 个事务。

我想知道如何修改此 Siddhi 查询以在请求 header X-Forwarded-For中使用 ip 地址而不是userId

如果要为特定 header 或特定 IP 创建节流策略,您可以使用高级节流策略配置 ( https://docs.wso2.com/display/AM260/Adding+New+Throttling+Policies )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM