[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