You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 API Manager自定义限流策略:IP白名单访问特定REST API资源

WSO2 APIM 3.2.0 实现指定IP白名单的自定义限流策略

下面是具体的实现步骤,帮你拦截非白名单IP对API特定资源的请求:

1. 创建自定义IP白名单限流策略

  • 登录APIM管理门户,导航到Rate Limiting Policies → Custom Policies,点击Add Policy。
  • 填写基础信息:
    • Policy Name:取个好识别的名字,比如IP_Whitelist_Restriction
    • Policy Type:选Custom
    • Description:仅允许指定IP访问目标API资源
  • 在Policy Definition框里,粘贴以下Synapse序列代码,替换ALLOWED_IPS的值为你的白名单IP列表:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="IP_Whitelist_Seq">
    <!-- 定义允许访问的IP列表,用逗号分隔 -->
    <property name="ALLOWED_IPS" value="192.168.1.10,10.20.30.40" scope="default" type="STRING"/>
    <!-- 获取请求的源IP -->
    <property name="SOURCE_IP" expression="get-property('axis2','REMOTE_ADDR')" scope="default" type="STRING"/>
    <!-- JS脚本判断IP是否在白名单内 -->
    <script language="js">
        const allowedList = mc.getProperty('ALLOWED_IPS').split(',').map(ip => ip.trim());
        const clientIp = mc.getProperty('SOURCE_IP').trim();
        
        if (!allowedList.includes(clientIp)) {
            // 返回403禁止访问
            mc.setProperty('HTTP_SC', '403');
            mc.setProperty('MESSAGE_TYPE', 'application/json');
            mc.setPayloadJSON({
                "error": "Forbidden",
                "message": "Your IP address is not authorized to access this resource"
            });
            throw new Error('Unauthorized IP address');
        }
    </script>
</sequence>

2. 密钥模板(Key Template)填写内容

在创建策略的Key Template输入框中,直接填写唯一标识该策略的字符串即可,推荐和策略名称对应,比如:

IP_WHITELIST_RESTRICTION

这个值是策略的内部标识,后续绑定到API资源时会用到,确保唯一就行。

3. 绑定策略到API特定资源

  • 找到你要保护的API,进入Manage → Policies → Rate Limiting页面。
  • 滚动到Resource Level Policies区域,找到目标资源(比如/products的GET请求)。
  • 点击该资源对应的Add Policy按钮,选择刚才创建的IP_Whitelist_Restriction策略,保存配置。
  • 重新发布API,让策略生效。

4. 验证策略

  • 用白名单内的IP调用目标资源:正常返回业务响应。
  • 用白名单外的IP调用:会收到403错误响应,提示IP未授权。

内容的提问来源于stack exchange,提问作者Ali farahzadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 08:25:03