public void addOrUpdateAclGroupConfig()

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


    public void addOrUpdateAclGroupConfig(AclRequest request) {
        try {
            PlainAccessConfig addConfig = request.getConfig();
            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(addConfig.getAccessKey())) {
                            remoteConfig = config;
                            break;
                        }
                    }
                }
                if (remoteConfig == null) {
                    // May be the broker no acl config of the access key, therefore add it;
                    mqAdminExt.createAndUpdatePlainAccessConfig(addr, addConfig);
                } else {
                    if (remoteConfig.getGroupPerms() == null) {
                        remoteConfig.setGroupPerms(new ArrayList<>());
                    }
                    removeExist(remoteConfig.getGroupPerms(), request.getGroupPerm().split("=")[0]);
                    remoteConfig.getGroupPerms().add(request.getGroupPerm());
                    mqAdminExt.createAndUpdatePlainAccessConfig(addr, remoteConfig);
                }
            }
        } catch (Exception e) {
            Throwables.throwIfUnchecked(e);
            throw new RuntimeException(e);
        }
    }