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))
{