summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape/cms
diff options
context:
space:
mode:
Diffstat (limited to 'base/server/cms/src/com/netscape/cms')
-rw-r--r--base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java b/base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java
index 089cca9be..b3e447cfc 100644
--- a/base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java
+++ b/base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java
@@ -160,7 +160,19 @@ public abstract class AAclAuthz {
ACL acl = (ACL) CMS.parseACL(resACLs);
if (acl != null) {
- mACLs.put(acl.getName(), acl);
+ ACL curACL = mACLs.get(acl.getName());
+ if (curACL == null) {
+ mACLs.put(acl.getName(), acl);
+ } else {
+ for (Enumeration<ACLEntry> entries = acl.entries() ;
+ entries.hasMoreElements() ; ) {
+ curACL.addEntry(entries.nextElement());
+ }
+ for (Enumeration<String> rights = acl.rights() ;
+ rights.hasMoreElements() ; ) {
+ curACL.addRight(rights.nextElement());
+ }
+ }
} else {
log(ILogger.LL_FAILURE, "parseACL failed");
}