开发者社区 问答 正文

如何配置订阅权限

本接口限企业铂金版客户专用,请前往铂金版购买页面查看详情。

描述

OnsSubscribeUpdate 接口用于设置指定订阅组的读取消息的权限。

使用场景

根据您指定的 MQ 区域以及 Consumer ID 名称,可以配置该 Consumer ID 的读消息的开关,一般用于禁止特定 Consumer ID 读取消息的场景。

请求参数列表

名称    类型    是否必须    描述
OnsRegionId    String    是    当前查询 MQ 所在区域,可以通过 OnsRegionList 方法获取
OnsPlatform    String    否    该请求来源,默认是从 POP 平台
PreventCache    Long    是    用于 CSRF 校验,设置为系统当前时间即可
ConsumerId    String    是    需要配置的 consumer ID 名称
ReadEnable    Boolean    是    设置读消息开关
返回参数列表

名称    类型    描述
RequestId    String    为公共参数,每个请求独一无二
HelpUrl    String    帮助链接
相关 API

OnsSubcribeCreate:创建订阅关系
OnsSubcribeDelete:删除订阅关系
OnsSubscribeGet:订阅关系精确查询
使用示例

本示例仅仅提供一个参考,从华东 1 接入点接入,关闭名为”CID_001”的 Consumer ID 的读权限。

    public static void main(String[] args) {
        String regionId = "cn-hangzhou";
        String accessKey = "XXXXXXXXXXXXXXXXX";
        String secretKey = "XXXXXXXXXXXXXXXXX";
        String endPointName ="cn-hangzhou";
        String productName ="Ons";
        String domain ="ons.cn-hangzhou.aliyuncs.com";
        /**
        *根据自己需要访问的区域选择Region,并设置对应的接入点
        */
        try {
            DefaultProfile.addEndpoint(endPointName,regionId,productName,domain);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        IClientProfile profile= DefaultProfile.getProfile(regionId,accessKey,secretKey);
        IAcsClient IAcsClient= new DefaultAcsClient(profile);
        OnsSubscriptionUpdateRequest request = new OnsSubscriptionUpdateRequest();
        request.setAcceptFormat(FormatType.JSON);
        request.setConsumerId("CID_001");
            /**
            *ONSRegionId是指需要API访问MQ哪个区域的资源
            *该值必须要根据OnsRegionList方法获取的列表来选择和配置,因为OnsRegionId是变动的,不能够写固定值
            */
        request.setOnsRegionId("daily");
        request.setPreventCache(System.currentTimeMillis());
        request.setReadEnable(false);//2代表禁读,4代表禁写,6代表同时读写
        try {
            OnsSubscriptionUpdateResponse response = IAcsClient.getAcsResponse(request);
            System.out.println(response.getRequestId());
        }
        catch (ServerException e) {
            e.printStackTrace();
        }
        catch (ClientException e) {
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

展开
收起
猫饭先生 2017-10-27 13:38:24 1644 分享 版权
0 条回答
写回答
取消 提交回答
问答分类:
问答地址: