public void deletePermConfig()

in src/main/java/org/apache/rocketmq/dashboard/service/impl/AclServiceImpl.java [220:262]


    public void deletePermConfig(AclRequest request) {
        try {
            PlainAccessConfig deleteConfig = request.getConfig();

            String topic = StringUtils.isNotEmpty(request.getTopicPerm()) ? request.getTopicPerm().split("=")[0] : null;
            String group = StringUtils.isNotEmpty(request.getGroupPerm()) ? request.getGroupPerm().split("=")[0] : null;
            if (deleteConfig.getTopicPerms() != null && topic != null) {
                removeExist(deleteConfig.getTopicPerms(), topic);
            }
            if (deleteConfig.getGroupPerms() != null && group != null) {
                removeExist(deleteConfig.getGroupPerms(), group);
            }

            for (String addr : getBrokerAddrs()) {
                AclConfig aclConfig = mqAdminExt.examineBrokerClusterAclConfig(addr);
                PlainAccessConfig remoteConfig = null;
                if (aclConfig.getPlainAccessConfigs() != null) {
                    for (PlainAccessConfig config : aclConfig.getPlainAccessConfigs()) {
                        if (config.getAccessKey().equals(deleteConfig.getAccessKey())) {
                            remoteConfig = config;
                            break;
                        }
                    }
                }
                if (remoteConfig == null) {
                    // Maybe the broker no acl config of the access key, therefore add it;
                    mqAdminExt.createAndUpdatePlainAccessConfig(addr, deleteConfig);
                } else {
                    if (remoteConfig.getTopicPerms() != null && topic != null) {
                        removeExist(remoteConfig.getTopicPerms(), topic);
                    }
                    if (remoteConfig.getGroupPerms() != null && group != null) {
                        removeExist(remoteConfig.getGroupPerms(), group);
                    }
                    mqAdminExt.createAndUpdatePlainAccessConfig(addr, remoteConfig);
                }
            }
        } catch (Exception e) {
            Throwables.throwIfUnchecked(e);
            throw new RuntimeException(e);
        }

    }