[jboss-cvs] JBossAS SVN: r69508 - in projects/security/security-jboss-sx/trunk: acl and 16 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 31 14:55:23 EST 2008


Author: anil.saldhana at jboss.com
Date: 2008-01-31 14:55:23 -0500 (Thu, 31 Jan 2008)
New Revision: 69508

Added:
   projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/config/
   projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/config/ACLProviderEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ACLInfo.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/JBossACLContext.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/SecurityActions.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/
   projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/ACLTestResource.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/JBossAuthorizationManagerACLUnitTestCase.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/TestACLProvider.java
Removed:
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOption.java
Modified:
   projects/security/security-jboss-sx/trunk/acl/.classpath
   projects/security/security-jboss-sx/trunk/acl/.project
   projects/security/security-jboss-sx/trunk/acl/pom.xml
   projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/ACLProviderImpl.java
   projects/security/security-jboss-sx/trunk/identity/.classpath
   projects/security/security-jboss-sx/trunk/jbosssx/.classpath
   projects/security/security-jboss-sx/trunk/jbosssx/pom.xml
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditConfigEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditProviderEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AppConfigurationEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AuthenticationInfo.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOptionContainer.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationConfigEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationModuleEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/SecurityConfigObjectModelFactory.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicy.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustConfigEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustModuleEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingConfigEntryHolder.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingModuleEntry.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java
   projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java
   projects/security/security-jboss-sx/trunk/pom.xml
Log:
SECURITY-118: acl into authorization manager

Modified: projects/security/security-jboss-sx/trunk/acl/.classpath
===================================================================
--- projects/security/security-jboss-sx/trunk/acl/.classpath	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/acl/.classpath	2008-01-31 19:55:23 UTC (rev 69508)
@@ -3,7 +3,7 @@
 	<classpathentry excluding="**/*.java" including="JBossORG-EULA.txt" kind="src" path=""/>
 	<classpathentry kind="src" path="src/main"/>
 	<classpathentry excluding="**/*.java" including="**/*.dtd|**/*.xsd|**/*.xml" kind="src" path="src/resources"/>
-	<classpathentry excluding="resources/" including="**/*.java" kind="src" output="target/test-classes" path="src/tests"/>
+	<classpathentry including="**/*.java;resources/*" kind="src" path="src/tests"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar"/>
 	<classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
@@ -27,8 +27,7 @@
 	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-test/1.0.4.GA/jboss-test-1.0.4.GA.jar"/>
 	<classpathentry kind="var" path="M2_REPO/asm/asm/1.5.3/asm-1.5.3.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.Beta3/authorization-spi-2.0.2.Beta3.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-impl/2.0.2-SNAPSHOT/identity-impl-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/identity-impl/2.0.2-SNAPSHOT/identity-impl-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2-SNAPSHOT/authorization-spi-2.0.2-SNAPSHOT.jar"/>
 	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
 	<classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
 	<classpathentry kind="var" path="M2_REPO/cglib/cglib/2.1_3/cglib-2.1_3.jar"/>
@@ -41,6 +40,7 @@
 	<classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"/>
 	<classpathentry kind="var" path="M2_REPO/ant/ant-junit/1.6.5/ant-junit-1.6.5.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/hibernate/hibernate-commons-annotations/3.0.0.ga/hibernate-commons-annotations-3.0.0.ga.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.Beta3/identity-spi-2.0.2.Beta3.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2-SNAPSHOT/identity-spi-2.0.2-SNAPSHOT.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/identity"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>


Property changes on: projects/security/security-jboss-sx/trunk/acl/.classpath
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: projects/security/security-jboss-sx/trunk/acl/.project
===================================================================
--- projects/security/security-jboss-sx/trunk/acl/.project	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/acl/.project	2008-01-31 19:55:23 UTC (rev 69508)
@@ -1,5 +1,5 @@
 <projectDescription>
-  <name>jboss-security-acl</name>
+  <name>acl-impl</name>
   <comment>JBoss Security is a cross cutting project that handles security for the JEMS projects</comment>
   <projects/>
   <buildSpec>
@@ -10,4 +10,4 @@
   <natures>
     <nature>org.eclipse.jdt.core.javanature</nature>
   </natures>
-</projectDescription>
\ No newline at end of file
+</projectDescription>

Modified: projects/security/security-jboss-sx/trunk/acl/pom.xml
===================================================================
--- projects/security/security-jboss-sx/trunk/acl/pom.xml	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/acl/pom.xml	2008-01-31 19:55:23 UTC (rev 69508)
@@ -5,7 +5,7 @@
       <version>2.0.2-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
-   <artifactId>jboss-security-acl</artifactId>
+   <artifactId>jboss-security-acl-impl</artifactId>
    <packaging>jar</packaging>
    <name>JBoss Security ACL Implementation</name>
    <url>http://labs.jboss.org/portal/jbosssecurity/</url>

Modified: projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/ACLProviderImpl.java
===================================================================
--- projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/ACLProviderImpl.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/ACLProviderImpl.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -25,6 +25,7 @@
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Set;
 
 import javax.persistence.EntityManager;
 import javax.persistence.EntityManagerFactory;
@@ -32,7 +33,10 @@
 import javax.persistence.NoResultException;
 import javax.persistence.Persistence;
 
+import org.jboss.security.authorization.AuthorizationException;
 import org.jboss.security.authorization.Resource;
+import org.jboss.security.identity.Identity;
+import org.jboss.util.NotImplementedException;
 
 /**
  * <p>
@@ -242,4 +246,25 @@
       }
       return acl;
    }
-}
+
+   /**
+    * @see ACLProvider#getEntitlements(Class, Resource, Identity)
+    */
+   public <T> Set<T> getEntitlements(Class<T> clazz, Resource resource, Identity identity) 
+   throws AuthorizationException
+   {
+      throw new NotImplementedException();
+   }
+
+   /**
+    * @see ACLProvider#tearDown()
+    */
+   public boolean tearDown()
+   {
+      return true;
+   }
+
+   public void initialize(Map<String, Object> sharedState, Map<String, Object> options)
+   { 
+   }
+}
\ No newline at end of file

Added: projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/config/ACLProviderEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/config/ACLProviderEntry.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/acl/src/main/org/jboss/security/acl/config/ACLProviderEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,105 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.security.acl.config;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.security.config.ControlFlag;
+import org.jboss.security.config.ModuleOption;
+//$Id$
+
+/**
+ *  Configuration Entry for ACL Providers
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Jan 30, 2008 
+ *  @version $Revision$
+ */
+public class ACLProviderEntry
+{
+   private String aclProviderName;
+   private ControlFlag controlFlag; 
+   private Map<String,Object> options = new HashMap<String,Object>();
+   
+   /** 
+    * Create a new AuthorizationModuleEntry.
+    * 
+    * @param name Policy Module Name 
+    */
+   public ACLProviderEntry(String name)
+   {
+      this.aclProviderName = name; 
+   }
+   
+   /** 
+    * Create a new AuthorizationModuleEntry.
+    * 
+    * @param name Policy Module Name
+    * @param options Options
+    */
+   public ACLProviderEntry(String name, Map<String,Object> options)
+   {
+      this.aclProviderName = name;
+      this.options = options;
+   }
+   
+   public void add(ModuleOption option)
+   { 
+      options.put(option.getName(), option.getValue());
+   }
+
+   /**
+    * Get the Policy Module Name
+    * @return
+    */
+   public String getAclProviderName()
+   {
+      return aclProviderName;
+   }
+
+   /**
+    * Get the options
+    * @return
+    */
+   public Map<String,Object> getOptions()
+   {
+      return options;
+   } 
+    
+   /**
+    * Get the Control Flag (Required,Requisite,Sufficient or Optional)
+    * @return
+    */
+   public ControlFlag getControlFlag()
+   {
+      return controlFlag;
+   }
+   
+   /**
+    * Set the Control Flag (Required,Requisite,Sufficient or Optional)
+    * @return
+    */
+   public void setControlFlag(ControlFlag controlFlag)
+   {
+      this.controlFlag = controlFlag;
+   } 
+}
\ No newline at end of file

Modified: projects/security/security-jboss-sx/trunk/identity/.classpath
===================================================================
--- projects/security/security-jboss-sx/trunk/identity/.classpath	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/identity/.classpath	2008-01-31 19:55:23 UTC (rev 69508)
@@ -1,14 +1,14 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src/main"/>
-	<classpathentry kind="src" path="src/resources"/>
-	<classpathentry excluding="resources/" kind="src" output="target/test-classes" path="src/tests"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.Beta3/identity-spi-2.0.2.Beta3.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2-SNAPSHOT/spi-2.0.2-SNAPSHOT-sources.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-test/1.0.4.GA/jboss-test-1.0.4.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
-	<classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
-	<classpathentry kind="output" path="target/eclipse-classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main"/>
+	<classpathentry kind="src" path="src/resources"/>
+	<classpathentry excluding="resources/" kind="src" output="target/test-classes" path="src/tests"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2-SNAPSHOT/identity-spi-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi/2.0.2-SNAPSHOT/spi-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-test/1.0.4.GA/jboss-test-1.0.4.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-common-core/2.2.1.GA/jboss-common-core-2.2.1.GA.jar"/>
+	<classpathentry kind="var" path="M2_REPO/jboss/jboss-logging-spi/2.0.2.GA/jboss-logging-spi-2.0.2.GA.jar"/>
+	<classpathentry kind="output" path="target/eclipse-classes"/>
+</classpath>

Modified: projects/security/security-jboss-sx/trunk/jbosssx/.classpath
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/.classpath	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/.classpath	2008-01-31 19:55:23 UTC (rev 69508)
@@ -9,10 +9,10 @@
 	<classpathentry kind="var" path="M2_REPO/apache-log4j/log4j/1.2.14/log4j-1.2.14.jar"/>
 	<classpathentry kind="var" path="M2_REPO/sun-xacml/sun-xacml/2.0/sun-xacml-2.0.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.0.CR4/jbossxb-2.0.0.CR4.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi-bare/2.0.2.Beta3/jboss-security-spi-bare-2.0.2.Beta3.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi-bare/2.0.2-SNAPSHOT/jboss-security-spi--bare-2.0.2-SNAPSHOT-sources.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2.Beta3/authorization-spi-2.0.2.Beta3.jar" sourcepath="M2_REPO/org/jboss/security/authorization-spi/2.0.2-SNAPSHOT/authorization-spi-2.0.2-SNAPSHOT-sources.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2.Beta3/acl-spi-2.0.2.Beta3.jar" sourcepath="M2_REPO/org/jboss/security/acl-spi/2.0.2-SNAPSHOT/acl-spi-2.0.2-SNAPSHOT-sources.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2.Beta3/identity-spi-2.0.2.Beta3.jar" sourcepath="M2_REPO/org/jboss/security/identity-spi/2.0.2-SNAPSHOT/identity-spi-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/jboss-security-spi-bare/2.0.2-SNAPSHOT/jboss-security-spi-bare-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/jboss-security-spi-bare/2.0.2-SNAPSHOT/jboss-security-spi--bare-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/authorization-spi/2.0.2-SNAPSHOT/authorization-spi-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/authorization-spi/2.0.2-SNAPSHOT/authorization-spi-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/acl-spi/2.0.2-SNAPSHOT/acl-spi-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/acl-spi/2.0.2-SNAPSHOT/acl-spi-2.0.2-SNAPSHOT-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/security/identity-spi/2.0.2-SNAPSHOT/identity-spi-2.0.2-SNAPSHOT.jar" sourcepath="M2_REPO/org/jboss/security/identity-spi/2.0.2-SNAPSHOT/identity-spi-2.0.2-SNAPSHOT-sources.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-javaee/5.0.0.Beta3/jboss-javaee-5.0.0.Beta3.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/javaee/jboss-jaspi-api/1.0.0.Beta3Update1/jboss-jaspi-api-1.0.0.Beta3Update1.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/jboss-test/1.0.4.GA/jboss-test-1.0.4.GA.jar"/>
@@ -28,5 +28,6 @@
 	<classpathentry kind="var" path="M2_REPO/sleepycat/je/3.2.43/je-3.2.43.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/jboss/jnpserver/5.0.0.Beta3/jnpserver-5.0.0.Beta3.jar"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/identity"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/acl"/>
 	<classpathentry kind="output" path="target/eclipse-classes"/>
 </classpath>

Modified: projects/security/security-jboss-sx/trunk/jbosssx/pom.xml
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/pom.xml	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/pom.xml	2008-01-31 19:55:23 UTC (rev 69508)
@@ -134,6 +134,12 @@
       </dependency>
       <dependency>
          <groupId>org.jboss.security</groupId>
+         <artifactId>jboss-security-acl-impl</artifactId>
+         <version>2.0.2-SNAPSHOT</version>
+         <scope>compile</scope>
+      </dependency>
+      <dependency>
+         <groupId>org.jboss.security</groupId>
          <artifactId>identity-impl</artifactId>
          <version>2.0.2-SNAPSHOT</version>
          <scope>compile</scope>
@@ -202,4 +208,4 @@
          <scope>test</scope>
       </dependency>    
    </dependencies>
-</project>
\ No newline at end of file
+</project>

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditConfigEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditConfigEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditConfigEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -25,8 +25,8 @@
 import java.util.Map;
 
 import javax.xml.namespace.QName;
-
-import org.jboss.security.auth.login.ModuleOption;
+ 
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 //$Id$

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditProviderEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditProviderEntry.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/audit/config/AuditProviderEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -24,7 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 
 //$Id$
 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntry.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -28,7 +28,7 @@
 import javax.security.auth.login.AppConfigurationEntry;
 
 import org.jboss.security.auth.login.LoginModuleStackHolder;
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 
 //$Id$
 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/container/config/AuthModuleEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -26,7 +26,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 //$Id$
@@ -39,7 +39,7 @@
  */
 public class AuthModuleEntryHolder implements GenericValueContainer
 {  
-   private Map moduleOptions = new HashMap();
+   private Map<String,Object> moduleOptions = new HashMap<String,Object>();
    String moduleName = null; 
    String loginModuleStackRefName = null;
    
@@ -75,9 +75,9 @@
       return new AuthModuleEntry( moduleName,moduleOptions,loginModuleStackRefName );
    }
    
-   public Class getTargetClass()
+   public Class<?> getTargetClass()
    { 
       return AuthModuleEntry.class;
    }
    
-}
+}
\ No newline at end of file

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AppConfigurationEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AppConfigurationEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AppConfigurationEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -27,6 +27,7 @@
 import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
 import javax.xml.namespace.QName;
 
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 /**
@@ -40,7 +41,7 @@
 {
    String code;
    LoginModuleControlFlag controlFlag = LoginModuleControlFlag.REQUIRED;
-   HashMap options = new HashMap();
+   HashMap<String,Object> options = new HashMap<String,Object>();
 
    // GenericValueContainer should have default ctor
    public AppConfigurationEntryHolder()
@@ -74,7 +75,7 @@
 
    public void addOption(ModuleOption option)
    {
-      options.put(option.name, option.value);
+      options.put(option.getName(), option.getValue());
    }
 
    // GenericValueContainer impl
@@ -109,7 +110,7 @@
       return new AppConfigurationEntry(code, controlFlag, options);
    }
 
-   public Class getTargetClass()
+   public Class<?> getTargetClass()
    {
       return AppConfigurationEntry.class;
    }

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AuthenticationInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AuthenticationInfo.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/AuthenticationInfo.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -67,7 +67,7 @@
       for(int i = 0; i < copy.length; i ++)
       { 
          AppConfigurationEntry entry = (AppConfigurationEntry) moduleEntries.get(i);
-	 HashMap options = new HashMap(entry.getOptions());
+	     HashMap<String,Object> options = new HashMap<String,Object>(entry.getOptions());
          if(!disableSecurityDomainInOptions())
          {
             options.put(SecurityConstants.SECURITY_DOMAIN_OPTION, this.getName());
@@ -118,6 +118,7 @@
       this.callbackHandler = handler;
    }
 
+   @SuppressWarnings("unchecked")
    public String toString()
    {
       StringBuffer buffer = new StringBuffer("AppConfigurationEntry[]:\n");
@@ -128,7 +129,7 @@
          buffer.append("\nLoginModule Class: "+entry.getLoginModuleName());
          buffer.append("\nControlFlag: "+entry.getControlFlag());
          buffer.append("\nOptions:");
-         Map options = entry.getOptions();
+         Map<String,?> options = entry.getOptions();
          Iterator iter = options.entrySet().iterator();
          while( iter.hasNext() )
          {
@@ -143,9 +144,9 @@
 
    private boolean disableSecurityDomainInOptions()
    {
-      String sysprop = (String)AccessController.doPrivileged(new PrivilegedAction()
+      String sysprop = (String)AccessController.doPrivileged(new PrivilegedAction<String>()
       {
-         public Object run()
+         public String run()
          {
             return System.getProperty(SecurityConstants.DISABLE_SECDOMAIN_OPTION);
          }

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -26,6 +26,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.security.auth.container.config.AuthModuleEntry;
 import org.jboss.security.config.ApplicationPolicy;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.security.config.PolicyConfig;
 import org.jboss.util.StringPropertyReplacer;
 import org.jboss.xb.binding.ObjectModelFactory;

Deleted: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOption.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOption.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOption.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -1,53 +0,0 @@
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2005, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
-package org.jboss.security.auth.login;
-
-/**
- * A login module option name/value pair holder
- * 
- * @author Scott.Stark at jboss.org
- * @version $Revision$
- */
-public class ModuleOption
-{
-   String name;
-   Object value = "";
-
-   public ModuleOption(String name)
-   {
-      this.name = name;
-   }
-
-   public String getName()
-   {
-      return name;
-   }
-   public Object getValue()
-   {
-      return value;
-   }
-   public void setValue(Object value)
-   {
-      this.value = value;
-   }
-
-}

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOptionContainer.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOptionContainer.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/auth/login/ModuleOptionContainer.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -23,6 +23,7 @@
 
 import javax.xml.namespace.QName;
 
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 /**
@@ -84,7 +85,7 @@
       return option;
    }
 
-   public Class getTargetClass()
+   public Class<?> getTargetClass()
    {
       return ModuleOption.class;
    }

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationConfigEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationConfigEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationConfigEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -26,7 +26,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.security.config.ControlFlag;
 import org.jboss.xb.binding.GenericValueContainer;
 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationModuleEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationModuleEntry.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/AuthorizationModuleEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -24,7 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.security.config.ControlFlag;
 
 //$Id$

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/SecurityConfigObjectModelFactory.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/SecurityConfigObjectModelFactory.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/authorization/config/SecurityConfigObjectModelFactory.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -24,7 +24,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.security.audit.config.AuditProviderEntry;
 import org.jboss.security.auth.login.LoginConfigObjectModelFactory;
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.security.config.ApplicationPolicy;
 import org.jboss.security.config.AuditInfo;
 import org.jboss.security.config.AuthorizationInfo;

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ACLInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ACLInfo.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ACLInfo.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,54 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.security.config;
+
+import org.jboss.security.acl.config.ACLProviderEntry;
+
+/**
+ *  Holder for ACL configuration
+ *  @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
+ *  @since  January 30, 2008 
+ *  @version $Revision: 65938 $
+ */
+public class ACLInfo extends BaseSecurityInfo<ACLProviderEntry>
+{  
+   public ACLInfo(String name)
+   {
+      super(name); 
+   }  
+   
+   public ACLProviderEntry[] getACLProviderEntry()
+   {
+      SecurityManager sm = System.getSecurityManager();
+      if( sm != null )
+         sm.checkPermission(GET_CONFIG_ENTRY_PERM); 
+      ACLProviderEntry[] entries = new ACLProviderEntry[moduleEntries.size()];
+      moduleEntries.toArray(entries);
+      return entries;
+   }
+
+   @Override
+   protected BaseSecurityInfo<ACLProviderEntry> create(String name)
+   {
+      return new ACLInfo(name);
+   } 
+}

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicy.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicy.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicy.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -42,6 +42,7 @@
 {
    private String name;
    private BaseAuthenticationInfo authenticationInfo;
+   private ACLInfo aclInfo;
    private AuthorizationInfo authorizationInfo;
    private AuditInfo auditInfo;
    private MappingInfo roleMappingInfo;
@@ -80,7 +81,17 @@
       authenticationInfo = info;
       authorizationInfo = info2;
    }
+   
+   public ACLInfo getAclInfo()
+   {
+      return aclInfo;
+   }
 
+   public void setAclInfo(ACLInfo aclInfo)
+   {
+      this.aclInfo = aclInfo;
+   }
+
    public BaseAuthenticationInfo getAuthenticationInfo()
    {
       BaseAuthenticationInfo bai = null;

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicyContainer.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/config/ApplicationPolicyContainer.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -30,6 +30,7 @@
 import javax.xml.namespace.QName;
 
 import org.jboss.logging.Logger;
+import org.jboss.security.acl.config.ACLProviderEntry;
 import org.jboss.security.audit.config.AuditProviderEntry;
 import org.jboss.security.auth.container.config.AuthModuleEntry;
 import org.jboss.security.auth.login.AppConfigurationEntryHolder;
@@ -144,6 +145,13 @@
             auditProviderEntries.add(ameEntry); 
          containsAudit = true;
       } 
+      else if( value instanceof ACLProviderEntry)
+      { 
+         AuditProviderEntry ameEntry = (AuditProviderEntry)value;
+         if(!auditProviderEntries.contains(ameEntry))
+            auditProviderEntries.add(ameEntry); 
+         containsAudit = true;
+      } 
       else if( value instanceof IdentityTrustModuleEntry )
       { 
          IdentityTrustModuleEntry ameEntry = (IdentityTrustModuleEntry) value;

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustConfigEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustConfigEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustConfigEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -26,7 +26,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 //$Id$
@@ -39,7 +39,7 @@
  */
 public class IdentityTrustConfigEntryHolder implements GenericValueContainer
 {
-   private Map moduleOptions = new HashMap();
+   private Map<String,Object> moduleOptions = new HashMap<String,Object>();
    String moduleName = null; 
    
    public void addChild(QName name, Object value)
@@ -71,7 +71,7 @@
       return entry;
    }
    
-   public Class getTargetClass()
+   public Class<?> getTargetClass()
    { 
       return IdentityTrustModuleEntry.class;
    } 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustModuleEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustModuleEntry.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/identitytrust/config/IdentityTrustModuleEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -24,7 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.security.config.ControlFlag;
 
 //$Id$

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingConfigEntryHolder.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingConfigEntryHolder.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingConfigEntryHolder.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -26,7 +26,7 @@
 
 import javax.xml.namespace.QName;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 import org.jboss.xb.binding.GenericValueContainer;
 
 //$Id: MappingConfigEntryHolder.java 46201 2006-07-11 17:51:23Z asaldhana $
@@ -39,7 +39,7 @@
  */
 public class MappingConfigEntryHolder implements GenericValueContainer
 {
-   private Map moduleOptions = new HashMap();
+   private Map<String,Object> moduleOptions = new HashMap<String,Object>();
    String moduleName = null;  
    
    public void addChild(QName name, Object value)
@@ -71,7 +71,7 @@
       return entry;
    }
    
-   public Class getTargetClass()
+   public Class<?> getTargetClass()
    { 
       return MappingModuleEntry.class;
    }

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingModuleEntry.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingModuleEntry.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/mapping/config/MappingModuleEntry.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -24,7 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.jboss.security.auth.login.ModuleOption;
+import org.jboss.security.config.ModuleOption;
 
 //$Id: MappingModuleEntry.java 45985 2006-06-29 20:56:57Z asaldhana $
 

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/JBossAuthorizationManager.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -51,6 +51,7 @@
 import org.jboss.security.SecurityContext;
 import org.jboss.security.SecurityRolesAssociation;
 import org.jboss.security.SimpleGroup;
+import org.jboss.security.acl.ACLContext;
 import org.jboss.security.authorization.AuthorizationContext;
 import org.jboss.security.authorization.AuthorizationException;
 import org.jboss.security.authorization.EntitlementHolder;
@@ -63,6 +64,7 @@
 import org.jboss.security.identity.plugins.SimpleRoleGroup;
 import org.jboss.security.mapping.MappingContext;
 import org.jboss.security.mapping.MappingManager;
+import org.jboss.security.plugins.acl.JBossACLContext;
 import org.jboss.security.plugins.authorization.JBossAuthorizationContext;
 import org.jboss.util.NotImplementedException;
 import org.jboss.util.xml.DOMUtils;
@@ -134,10 +136,15 @@
    }
    
 
-   public EntitlementHolder<?> entitlements(Resource resource, Identity identity)
+   /**
+    * @see AuthorizationManager#entitlements(Class, Resource, Identity)
+    */
+   public <T> EntitlementHolder<T> getEntitlements(Class<T> clazz,
+         Resource resource, Identity identity)
    throws AuthorizationException
    { 
-      throw new NotImplementedException();
+      ACLContext aclContext = new JBossACLContext(this.securityDomain);
+      return aclContext.getEntitlements(clazz, resource, identity);
    }
 
    

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/JBossACLContext.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/JBossACLContext.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/JBossACLContext.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,202 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.security.plugins.acl;
+
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.logging.Logger;
+import org.jboss.security.acl.ACLContext;
+import org.jboss.security.acl.ACLProvider;
+import org.jboss.security.acl.config.ACLProviderEntry;
+import org.jboss.security.authorization.AuthorizationException;
+import org.jboss.security.authorization.EntitlementHolder;
+import org.jboss.security.authorization.Resource;
+import org.jboss.security.config.ACLInfo;
+import org.jboss.security.config.ApplicationPolicy;
+import org.jboss.security.config.SecurityConfiguration;
+import org.jboss.security.identity.Identity;
+
+//$Id$
+
+/**
+ *  Default Implementation of ACLContext
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Jan 30, 2008 
+ *  @version $Revision$
+ */
+public class JBossACLContext extends ACLContext
+{
+   private static Logger log = Logger.getLogger(JBossACLContext.class);
+   private boolean trace = log.isTraceEnabled();  
+   
+   public JBossACLContext(String name)
+   {
+      this.securityDomainName = name;
+   }
+
+   @Override
+   public <T> EntitlementHolder<T> getEntitlements(final Class<T> clazz, 
+         final Resource resource, final Identity identity) 
+   throws AuthorizationException
+   {
+      Set<T> aggregateEntitlements = null;
+      
+      try
+      {
+         initializeModules(resource, identity);
+      }
+      catch (PrivilegedActionException e1)
+      {
+         throw new RuntimeException(e1);
+      } 
+      //Do a PrivilegedAction
+      try
+      {
+         aggregateEntitlements = AccessController.doPrivileged(new PrivilegedExceptionAction<Set<T>>() 
+         {
+            public Set<T> run() throws AuthorizationException 
+            {
+               Set<T> entitlements = invokeACL(clazz,resource,identity); 
+               invokeTeardown();
+                
+               return entitlements;
+            }
+         });
+      }
+      catch (PrivilegedActionException e)
+      {
+         Exception exc = e.getException();
+         if(trace)
+           log.trace("Error in authorize:", exc); 
+         invokeTeardown();
+         throw ((AuthorizationException)exc);
+      }
+      
+      final Set<T> result = aggregateEntitlements;
+      return new EntitlementHolder<T>()
+      { 
+         public Set<T> getEntitled()
+         {
+            return result;
+         }
+      };
+   }
+   
+   private void initializeModules(Resource resource, Identity identity) 
+   throws PrivilegedActionException
+   { 
+      ACLInfo aclInfo = getACLInfo(securityDomainName, resource); 
+      if(aclInfo == null)
+         throw new IllegalStateException("ACL Info is null");
+      ACLProviderEntry[] entries = aclInfo.getACLProviderEntry();
+      int len = entries != null ? entries.length : 0;
+      for(int i = 0 ; i < len; i++)
+      {
+         ACLProviderEntry entry = entries[i]; 
+         modules.add(instantiateModule(entry.getAclProviderName(), 
+                     entry.getOptions())); 
+      }
+   }
+   
+   private ACLProvider instantiateModule(String name, 
+         Map<String,Object> map) 
+   throws PrivilegedActionException
+   {
+      ACLProvider am = null;
+      ClassLoader tcl = SecurityActions.getContextClassLoader();
+      try
+      {
+         Class<?> clazz = tcl.loadClass(name);
+         am = (ACLProvider)clazz.newInstance();
+      }
+      catch ( Exception e)
+      {
+         log.debug("Error instantiating AuthorizationModule:",e);
+      } 
+      if(am == null)
+         throw new IllegalStateException("ACLProvider has not " +
+               "been instantiated"); 
+      am.initialize(this.sharedState,map); 
+      return am;
+   }
+   
+   @SuppressWarnings("unchecked")
+   private <T> Set<T> invokeACL(Class<T> clazz, Resource resource, Identity identity) 
+   throws AuthorizationException
+   {   
+      Set<T> entitlements = new HashSet<T>();
+      int length = modules.size();
+      for(int i = 0; i < length; i++)
+      {
+         ACLProvider module = (ACLProvider)modules.get(i);  
+         try
+         {
+            Set<T> er = module.getEntitlements(clazz, resource, identity);
+            if(er == null)
+               throw new AuthorizationException("module "+module.getClass().getName()
+                     +" generated null entitlements.");
+            entitlements.addAll(er);
+         }
+         catch(Exception ae)
+         { 
+            throw new AuthorizationException(ae.getMessage());
+         }
+      }
+      return entitlements;
+   }
+   
+   private ACLInfo getACLInfo(String domainName, Resource resource)
+   { 
+      ApplicationPolicy aPolicy = SecurityConfiguration.getApplicationPolicy(domainName); 
+      
+      if(aPolicy == null)
+      {
+         if(trace)
+            log.trace("Application Policy not obtained for domain="+ domainName +
+                         ". Trying to obtain the App policy for the default domain of the layer:");
+         aPolicy = SecurityConfiguration.getApplicationPolicy(resource.getLayer().name());  
+      }
+      if(aPolicy == null)
+         throw new IllegalStateException("Application Policy is null for domain:"+ domainName);
+      
+      return aPolicy.getAclInfo(); 
+   } 
+   
+   private void invokeTeardown()
+   throws AuthorizationException
+   {
+      int length = modules.size();
+      for(int i = 0; i < length; i++)
+      {
+         ACLProvider module = (ACLProvider)modules.get(i); 
+         boolean bool = module.tearDown();
+         if(!bool)
+            throw new AuthorizationException("TearDown on module failed:"+module.getClass());
+      } 
+      modules.clear();
+   }
+}
\ No newline at end of file

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/SecurityActions.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/SecurityActions.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/acl/SecurityActions.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,66 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.security.plugins.acl;
+
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+
+//$Id$
+
+/**
+ *  Privileged Blocks
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  May 11, 2007 
+ *  @version $Revision$
+ */
+class SecurityActions
+{
+   static ClassLoader getContextClassLoader() throws PrivilegedActionException
+   {
+      return AccessController.doPrivileged(new PrivilegedExceptionAction<ClassLoader>()
+      { 
+         public ClassLoader run()
+         {
+            return Thread.currentThread().getContextClassLoader();
+         }
+      });
+   }
+   
+   static Class<?> loadClass(final String name) throws PrivilegedActionException 
+   {
+      return AccessController.doPrivileged(new PrivilegedExceptionAction<Class<?>>()
+      {
+         public Class<?> run() throws PrivilegedActionException
+         {
+            try
+            {
+               return getContextClassLoader().loadClass(name);
+            }
+            catch ( Exception e)
+            {
+               throw new PrivilegedActionException(e);
+            } 
+         }
+      });
+   }
+}
\ No newline at end of file

Modified: projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/main/org/jboss/security/plugins/authorization/JBossAuthorizationContext.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -277,7 +277,7 @@
          AuthorizationModule module = (AuthorizationModule)modules.get(i); 
          boolean bool = module.commit();
          if(!bool)
-            throw new AuthorizationException("commit on modules failed");
+            throw new AuthorizationException("commit on modules failed:"+module.getClass());
       } 
       modules.clear();
    }
@@ -291,7 +291,7 @@
          AuthorizationModule module = (AuthorizationModule)modules.get(i); 
          boolean bool = module.abort(); 
          if(!bool)
-            throw new AuthorizationException("abort on modules failed");
+            throw new AuthorizationException("abort on modules failed:"+module.getClass());
       } 
       modules.clear();
    }

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/ACLTestResource.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/ACLTestResource.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/ACLTestResource.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,66 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.authorization.acl;
+
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.security.authorization.Resource;
+import org.jboss.security.authorization.ResourceType;
+
+//$Id$
+
+/**
+ *  Test Resource For ACL
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Jan 30, 2008 
+ *  @version $Revision$
+ */
+public class ACLTestResource implements Resource
+{
+   private Map<String, Object> cmap;
+
+   public ACLTestResource(final Map<String,Object> cmap)
+   {
+      this.cmap = cmap;
+   }
+   
+   public ResourceType getLayer()
+   {
+      return ResourceType.ACL;
+   }
+
+   public Map<String, Object> getMap()
+   {
+      return cmap;
+   }
+   
+   public Set<String> getEntitlements()
+   {
+      //TODO: call the acl framework
+      Set<String> er = new HashSet<String>();
+      er.add("resource1");
+      er.add("resource2");
+      return er;
+   }
+}

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/JBossAuthorizationManagerACLUnitTestCase.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/JBossAuthorizationManagerACLUnitTestCase.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/JBossAuthorizationManagerACLUnitTestCase.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,110 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.authorization.acl;
+
+import java.security.Principal;
+import java.security.acl.Group;
+import java.util.HashMap;
+import java.util.Set;
+
+import junit.framework.TestCase;
+
+import org.jboss.security.acl.config.ACLProviderEntry;
+import org.jboss.security.authorization.EntitlementHolder;
+import org.jboss.security.authorization.Resource;
+import org.jboss.security.config.ACLInfo;
+import org.jboss.security.config.ApplicationPolicy;
+import org.jboss.security.config.SecurityConfiguration;
+import org.jboss.security.identity.Identity;
+import org.jboss.security.identity.Role;
+import org.jboss.security.plugins.JBossAuthorizationManager;
+
+//$Id$
+
+/**
+ *  ACL Unit Tests using JBossAuthorizationManager
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Jan 30, 2008 
+ *  @version $Revision$
+ */
+public class JBossAuthorizationManagerACLUnitTestCase extends TestCase
+{ 
+   protected void setUp()
+   {
+      ApplicationPolicy ap = new ApplicationPolicy("test-acl");
+      ACLInfo aclInfo = new ACLInfo("test-acl");
+      ACLProviderEntry ame = new ACLProviderEntry(TestACLProvider.class.getName());
+      aclInfo.add(ame);
+      ap.setAclInfo(aclInfo);
+      SecurityConfiguration.addApplicationPolicy(ap);  
+   }
+   
+   public void testACL() throws Exception
+   {
+      Resource resource = getResource();
+      Identity identity = getIdentity();
+      
+      JBossAuthorizationManager jam = new JBossAuthorizationManager("test-acl");
+      EntitlementHolder<?> eh = jam.getEntitlements(ACLResourceType.class, 
+            resource, identity);
+      assertNotNull(eh);
+      Set<?> entitled = eh.getEntitled();
+      assertNotNull(entitled);
+      assertTrue(entitled.size() > 0);
+   }
+   
+   
+   public class ACLResourceType
+   {   
+   }
+   
+   public Resource getResource()
+   {
+      return new ACLTestResource(new HashMap<String,Object>()); 
+   }
+   
+   public Identity getIdentity()
+   {
+      return  new Identity()
+      {
+         public Group asGroup()
+         {
+            return null;
+         }
+
+         public Principal asPrincipal()
+         {
+            return null;
+         }
+
+         public String getName()
+         {
+            return null;
+         }
+
+         public Role getRole()
+         {
+            return null;
+         }
+      };
+   }
+}

Added: projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/TestACLProvider.java
===================================================================
--- projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/TestACLProvider.java	                        (rev 0)
+++ projects/security/security-jboss-sx/trunk/jbosssx/src/tests/org/jboss/test/authorization/acl/TestACLProvider.java	2008-01-31 19:55:23 UTC (rev 69508)
@@ -0,0 +1,93 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2007, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.test.authorization.acl;
+
+import java.util.Collection;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.security.acl.ACL;
+import org.jboss.security.acl.ACLEntry;
+import org.jboss.security.acl.ACLProvider;
+import org.jboss.security.authorization.AuthorizationException;
+import org.jboss.security.authorization.Resource;
+import org.jboss.security.identity.Identity;
+
+//$Id$
+
+/**
+ *  Test ACL Provider
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Jan 30, 2008 
+ *  @version $Revision$
+ */
+public class TestACLProvider implements ACLProvider
+{ 
+   public ACL createACL(Resource resource)
+   {
+      return null;
+   }
+
+   public ACL createACL(Resource resource, Collection<ACLEntry> entries)
+   {
+      return null;
+   }
+
+   public ACL getACL(Resource resource)
+   {
+      return null;
+   }
+
+   @SuppressWarnings("unchecked")
+   public <T> Set<T> getEntitlements(Class<T> clazz, Resource resource, Identity identity)
+         throws AuthorizationException
+   {
+      if(resource instanceof ACLTestResource ==  false)
+         throw new IllegalArgumentException("Not a ACL Test Resource");
+      ACLTestResource atr = (ACLTestResource) resource;
+      return (Set<T>) atr.getEntitlements(); 
+   }
+
+   public void initialize(Map<String, Object> sharedState, Map<String, Object> options)
+   {
+   }
+
+   public boolean removeACL(ACL acl)
+   {
+      return false;
+   }
+
+   public boolean removeACL(Resource resource)
+   {
+      return false;
+   }
+
+   public boolean tearDown()
+   {
+      return true;
+   }
+
+   public boolean updateACL(ACL acl)
+   {
+      return false;
+   } 
+}

Modified: projects/security/security-jboss-sx/trunk/pom.xml
===================================================================
--- projects/security/security-jboss-sx/trunk/pom.xml	2008-01-31 19:40:21 UTC (rev 69507)
+++ projects/security/security-jboss-sx/trunk/pom.xml	2008-01-31 19:55:23 UTC (rev 69508)
@@ -53,9 +53,9 @@
   
    <modules>
      <module>identity</module>
+     <module>acl</module>
      <module>jbosssx</module>
      <module>jbosssx-client</module>
-     <module>acl</module>
      <module>assembly</module>
    </modules>
   
@@ -246,7 +246,7 @@
   
   <properties>
     <org.jboss.javaee.version>Beta3Update1</org.jboss.javaee.version>
-    <org.jboss.security.spi.version>2.0.2.Beta3</org.jboss.security.spi.version>
+    <org.jboss.security.spi.version>2.0.2-SNAPSHOT</org.jboss.security.spi.version>
   </properties>
   
 </project>




More information about the jboss-cvs-commits mailing list