This is an automated email from the ASF dual-hosted git repository.

jinrongtong pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq.git


The following commit(s) were added to refs/heads/develop by this push:
     new 330d56b2cf [ISSUE#6595] Fix NPE and repeat access key log (#6596)
330d56b2cf is described below

commit 330d56b2cf93d63fa602f7c24dcad955783266f3
Author: hiyo <[email protected]>
AuthorDate: Fri May 26 08:38:59 2023 +0800

    [ISSUE#6595] Fix NPE and repeat access key log (#6596)
    
    * [ISSUE#6595] fix NPE and repeat access key log
    
    * optimize code
---
 .../java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java  | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git 
a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java 
b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
index 748f3d5846..f6699fa13b 100644
--- 
a/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
+++ 
b/acl/src/main/java/org/apache/rocketmq/acl/plain/PlainPermissionManager.java
@@ -243,6 +243,8 @@ public class PlainPermissionManager {
                 if (oldPath == null || aclFilePath.equals(oldPath)) {
                     
plainAccessResourceMap.put(plainAccessResource.getAccessKey(), 
plainAccessResource);
                     
this.accessKeyTable.put(plainAccessResource.getAccessKey(), aclFilePath);
+                } else {
+                    log.warn("The accessKey {} is repeated in multiple ACL 
files", plainAccessResource.getAccessKey());
                 }
             }
         }
@@ -613,8 +615,8 @@ public class PlainPermissionManager {
 
         // Check the white addr for accessKey
         String aclFileName = 
accessKeyTable.get(plainAccessResource.getAccessKey());
-        PlainAccessResource ownedAccess = 
aclPlainAccessResourceMap.get(aclFileName).get(plainAccessResource.getAccessKey());
-        if (null == ownedAccess) {
+        PlainAccessResource ownedAccess = 
aclPlainAccessResourceMap.getOrDefault(aclFileName, new 
HashMap<>()).get(plainAccessResource.getAccessKey());
+        if (ownedAccess == null) {
             throw new AclException(String.format("No PlainAccessResource for 
accessKey=%s", plainAccessResource.getAccessKey()));
         }
         if (ownedAccess.getRemoteAddressStrategy().match(plainAccessResource)) 
{

Reply via email to