在API Manager上添加新的默认层

时间:2019-01-02 17:40:36

标签: wso2 wso2-am wso2carbon

我正在使用API​​ Manager 2.2.0

默认情况下,WSO2 API Manager附带了一些订阅限制策略,例如黄金,白银和青铜。我要添加一个名为Diamond的新钻石。

我使用了Admin网页(例如https://localhost:9443/admin)在所有现有租户上添加了这个新层。

我现在想要的是在创建新租户时默认生成该钻石级。

我编辑了文件default-tiers.xml,并添加了以下代码:

<wsp:Policy>
    <throttle:ID throttle:type="ROLE">Diamond</throttle:ID>
    <wsp:Policy>
        <throttle:Control>
            <wsp:Policy>
                <throttle:MaximumCount>2000</throttle:MaximumCount>
                <throttle:UnitTime>1000</throttle:UnitTime>
                <wsp:Policy>
                    <throttle:Attributes>
                        <throttle:x-wso2-BillingPlan>FREE</throttle:x-wso2-BillingPlan>
                        <throttle:x-wso2-StopOnQuotaReach>true</throttle:x-wso2-StopOnQuotaReach>
                    </throttle:Attributes>
                </wsp:Policy>
            </wsp:Policy>
        </throttle:Control>
    </wsp:Policy>
</wsp:Policy>

当我创建新的租户并访问Admin网页时,该层不存在。如果我在Carbon上浏览该租户的资源,则可以看到文件tiers.xml包含上面的代码。

由于当我使用此Diamond层订阅API时,新闻租户没有它,所以它总是向我返回403。如果我使用其他金币(例如金币),一切都会按预期进行。

如何将新层添加到默认层列表中?

我们非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

由于租户是孤立的实体,因此没有OOTB方式可以实现这一目标。但是,您可以使用TenantMgtListener(实现onTenantCreate)[1]并调用订阅添加API [2]。

[1] https://docs.wso2.com/display/Carbon4411/TenantMgtListener [2] https://docs.wso2.com/display/AM260/apidocs/admin/#!/operations#SubscriptionPolicyCollection#throttlingPoliciesSubscriptionPost

p.s。在新的限制实施中使用了default-tiers.xmltiers.xml