diff options
Diffstat (limited to 'base/server/cms/src/com/netscape/cms')
-rw-r--r-- | base/server/cms/src/com/netscape/cms/authorization/AAclAuthz.java | 14 |
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"); } |