diff --git a/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java b/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java index 8522e165295..51667584ebd 100644 --- a/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java +++ b/acl/src/test/java/org/apache/rocketmq/acl/plain/PlainAccessValidatorTest.java @@ -470,9 +470,12 @@ public void validateGetAllTopicConfigTest() { @Test public void addAccessAclYamlConfigTest() throws InterruptedException { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); plainAccessConfig.setAccessKey("rocketmq3"); @@ -552,8 +555,12 @@ public void getAccessAclYamlConfigTest() { @Test public void updateAccessAclYamlConfigTest() throws InterruptedException { - String targetFileName = System.getProperty("rocketmq.home.dir") + File.separator + "conf/plain_acl.yml"; - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); + String targetFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); plainAccessConfig.setAccessKey("rocketmq3"); @@ -628,9 +635,12 @@ public void updateAccessAclYamlConfigTest() throws InterruptedException { @Test public void deleteAccessAclYamlConfigTest() throws InterruptedException { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); plainAccessConfig.setAccessKey("rocketmq3"); @@ -676,9 +686,12 @@ public void deleteAccessAclYamlConfigTest() throws InterruptedException { @Test public void updateGlobalWhiteRemoteAddressesTest() throws InterruptedException { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); List globalWhiteAddrsList = new ArrayList<>(); globalWhiteAddrsList.add("192.168.1.*"); @@ -794,9 +807,12 @@ public void updateAccessAnotherAclYamlConfigTest() throws IOException, Interrupt @Test(expected = AclException.class) public void createAndUpdateAccessAclNullSkExceptionTest() { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/acl/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); plainAccessConfig.setAccessKey("RocketMQ33"); @@ -811,9 +827,12 @@ public void createAndUpdateAccessAclNullSkExceptionTest() { @Test public void addAccessDefaultAclYamlConfigTest() throws InterruptedException { PlainAccessValidator plainAccessValidator = new PlainAccessValidator(); + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); plainAccessConfig.setAccessKey("watchrocketmqh"); @@ -903,9 +922,12 @@ public void getAllAclConfigTest() { @Test public void updateAccessConfigEmptyPermListTest() { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessValidator plainAccessValidator = new PlainAccessValidator(); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); @@ -932,9 +954,12 @@ public void updateAccessConfigEmptyPermListTest() { @Test public void updateAccessConfigEmptyWhiteRemoteAddressTest() { + String backupFileName = System.getProperty("rocketmq.home.dir") + + File.separator + "conf/plain_acl_bak.yml".replace("/", File.separator); String targetFileName = System.getProperty("rocketmq.home.dir") - + File.separator + "conf/plain_acl.yml".replace("/", File.separator); - Map backUpAclConfigMap = AclUtils.getYamlDataObject(targetFileName, Map.class); + + File.separator + "conf/plain_acl.yml".replace("/", File.separator); + Map backUpAclConfigMap = AclUtils.getYamlDataObject(backupFileName, Map.class); + AclUtils.writeDataObject(targetFileName, backUpAclConfigMap); PlainAccessValidator plainAccessValidator = new PlainAccessValidator(); PlainAccessConfig plainAccessConfig = new PlainAccessConfig(); diff --git a/acl/src/test/resources/conf/plain_acl_bak.yml b/acl/src/test/resources/conf/plain_acl_bak.yml new file mode 100644 index 00000000000..59bd6d4ff29 --- /dev/null +++ b/acl/src/test/resources/conf/plain_acl_bak.yml @@ -0,0 +1,39 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +## suggested format + +globalWhiteRemoteAddresses: +- 10.10.103.* +- 192.168.0.* +accounts: +- accessKey: RocketMQ + secretKey: 12345678 + whiteRemoteAddress: 192.168.0.* + admin: false + defaultTopicPerm: DENY + defaultGroupPerm: SUB + topicPerms: + - topicA=DENY + - topicB=PUB|SUB + - topicC=SUB + groupPerms: + - groupA=DENY + - groupB=SUB + - groupC=SUB +- accessKey: rocketmq2 + secretKey: 12345678 + whiteRemoteAddress: 192.168.1.* + admin: true