我正在使用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。如果我使用其他金币(例如金币),一切都会按预期进行。
如何将新层添加到默认层列表中?
我们非常感谢您的帮助。
答案 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.xml
或tiers.xml
。