Return-Path: Delivered-To: apmail-geronimo-activemq-commits-archive@www.apache.org Received: (qmail 69386 invoked from network); 12 Dec 2006 13:19:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Dec 2006 13:19:52 -0000 Received: (qmail 39384 invoked by uid 500); 12 Dec 2006 13:19:57 -0000 Delivered-To: apmail-geronimo-activemq-commits-archive@geronimo.apache.org Received: (qmail 39360 invoked by uid 500); 12 Dec 2006 13:19:57 -0000 Mailing-List: contact activemq-commits-help@geronimo.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: activemq-dev@geronimo.apache.org Delivered-To: mailing list activemq-commits@geronimo.apache.org Received: (qmail 39350 invoked by uid 99); 12 Dec 2006 13:19:57 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 05:19:57 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 12 Dec 2006 05:19:48 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 5FABF1A981A; Tue, 12 Dec 2006 05:19:04 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r486131 - /incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java Date: Tue, 12 Dec 2006 13:19:04 -0000 To: activemq-commits@geronimo.apache.org From: jlim@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061212131904.5FABF1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jlim Date: Tue Dec 12 05:19:03 2006 New Revision: 486131 URL: http://svn.apache.org/viewvc?view=rev&rev=486131 Log: added fix for https://issues.apache.org/activemq/browse/AMQ-908 Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java Modified: incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java URL: http://svn.apache.org/viewvc/incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java?view=diff&rev=486131&r1=486130&r2=486131 ============================================================================== --- incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java (original) +++ incubator/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/security/AuthorizationEntry.java Tue Dec 12 05:19:03 2006 @@ -41,6 +41,10 @@ private Set writeACLs = Collections.EMPTY_SET; private Set adminACLs = Collections.EMPTY_SET; + private String adminRoles = null; + private String readRoles = null; + private String writeRoles = null; + private String groupClass = "org.apache.activemq.jaas.GroupPrincipal"; public String getGroupClass() { @@ -76,17 +80,23 @@ } // helper methods for easier configuration in Spring + // ACLs are already set in the afterPropertiesSet method to ensure that groupClass is set first before + // calling parceACLs() on any of the roles. We still need to add the call to parceACLs inside the helper + // methods for instances where we configure security programatically without using xbean // ------------------------------------------------------------------------- public void setAdmin(String roles) throws Exception { - setAdminACLs(parseACLs(roles)); + adminRoles = roles; + setAdminACLs(parseACLs(adminRoles)); } public void setRead(String roles) throws Exception { - setReadACLs(parseACLs(roles)); + readRoles = roles; + setReadACLs(parseACLs(readRoles)); } public void setWrite(String roles) throws Exception { - setWriteACLs(parseACLs(roles)); + writeRoles = roles; + setWriteACLs(parseACLs(writeRoles)); } protected Set parseACLs(String roles) throws Exception { @@ -133,4 +143,21 @@ } return answer; } + + public void afterPropertiesSet() throws Exception { + super.afterPropertiesSet(); + + if(adminRoles!=null) { + setAdminACLs(parseACLs(adminRoles)); + } + + if(writeRoles!=null) { + setWriteACLs(parseACLs(writeRoles)); + } + + if(readRoles!=null) { + setReadACLs(parseACLs(readRoles)); + } + + } }