[jboss-cvs] JBossAS SVN: r65668 - in projects/security/security-jboss-sx/trunk/src: main/org/jboss/security/config and 3 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Sep 27 20:30:23 EDT 2007
Author: anil.saldhana at jboss.com
Date: 2007-09-27 20:30:22 -0400 (Thu, 27 Sep 2007)
New Revision: 65668
Added:
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/BaseSecurityInfo.java
Modified:
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/BaseAuthenticationInfo.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicy.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuditInfo.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuthorizationInfo.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/IdentityTrustInfo.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/MappingInfo.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/PolicyConfig.java
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/RoleMappingInfo.java
projects/security/security-jboss-sx/trunk/src/resources/schema/security-config_5_0.xsd
projects/security/security-jboss-sx/trunk/src/tests/org/jboss/test/security/config/SecurityConfigurationUnitTestCase.java
projects/security/security-jboss-sx/trunk/src/tests/resources/config/securityConfig5.xml
Log:
SECURITY-80: ApplicationPolicy extension
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/BaseAuthenticationInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/BaseAuthenticationInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/BaseAuthenticationInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -21,8 +21,7 @@
*/
package org.jboss.security.auth.login;
-import java.util.ArrayList;
-import java.util.List;
+import org.jboss.security.config.BaseSecurityInfo;
//$Id$
@@ -31,38 +30,21 @@
* @author <a href="mailto:anil.saldhana at jboss.org>Anil.Saldhana at jboss.org</a>
* @since Dec 21, 2005
*/
-public class BaseAuthenticationInfo
-{
- /**
- * A Set of modules - either LoginModules or AuthModules
- * In the form of AppConfigurationEntry or AuthModuleEntry
- */
- protected List moduleEntries = new ArrayList();
-
- protected String name;
-
+public class BaseAuthenticationInfo extends BaseSecurityInfo<Object>
+{
public BaseAuthenticationInfo()
{
- this(null);
+ super();
}
public BaseAuthenticationInfo(String name)
{
- this.name = name;
- }
-
- public String getName()
- {
- return name;
+ super(name);
}
-
- public void add(List moduleEntries)
- {
- this.moduleEntries.addAll(moduleEntries);
- }
-
- public List getModuleEntries()
- {
- return this.moduleEntries;
- }
+
+ @Override
+ protected BaseSecurityInfo create(String name)
+ {
+ return new BaseAuthenticationInfo(name);
+ }
}
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/auth/login/LoginConfigObjectModelFactory.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -77,6 +77,9 @@
name = StringPropertyReplacer.replaceProperties(name);
ApplicationPolicy aPolicy = new ApplicationPolicy(name);
aPolicy.setPolicyConfig(config);
+ String baseAppPolicyName = attrs.getValue("extends");
+ if(baseAppPolicyName != null)
+ aPolicy.setBaseApplicationPolicyName(baseAppPolicyName);
if( trace )
log.trace("newChild.PolicyConfig, AuthenticationInfo: "+name);
child = aPolicy;
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicy.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicy.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicy.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -44,6 +44,9 @@
private MappingInfo roleMappingInfo;
private IdentityTrustInfo identityTrustInfo;
+ // Base application policy (if any)
+ private String baseApplicationPolicyName;
+
//Parent PolicyConfig
private PolicyConfig policyConfig;
@@ -76,7 +79,16 @@
public BaseAuthenticationInfo getAuthenticationInfo()
{
- return authenticationInfo;
+ BaseAuthenticationInfo bai = null;
+ ApplicationPolicy ap = this.getBaseApplicationPolicy();
+ if(ap != null)
+ bai = ap.getAuthenticationInfo();
+ if(bai != null && authenticationInfo == null)
+ return bai;
+ else if(bai != null)
+ return (BaseAuthenticationInfo) authenticationInfo.merge(bai);
+ else
+ return authenticationInfo;
}
public void setAuthenticationInfo(BaseAuthenticationInfo authenticationInfo)
@@ -86,7 +98,16 @@
public AuthorizationInfo getAuthorizationInfo()
{
- return authorizationInfo;
+ AuthorizationInfo bai = null;
+ ApplicationPolicy ap = this.getBaseApplicationPolicy();
+ if(ap != null)
+ bai = ap.getAuthorizationInfo();
+ if(bai != null && authorizationInfo == null)
+ return bai;
+ else if(bai != null)
+ return (AuthorizationInfo) authorizationInfo.merge(bai);
+ else
+ return authorizationInfo;
}
public void setAuthorizationInfo(AuthorizationInfo authorizationInfo)
@@ -96,7 +117,17 @@
public MappingInfo getRoleMappingInfo()
{
- return roleMappingInfo;
+ MappingInfo bai = null;
+ ApplicationPolicy ap = this.getBaseApplicationPolicy();
+ if(ap != null)
+ bai = ap.getRoleMappingInfo();
+
+ if(bai != null && roleMappingInfo == null)
+ return bai;
+ else if(bai != null)
+ return (MappingInfo) roleMappingInfo.merge(bai);
+ else
+ return roleMappingInfo;
}
public void setRoleMappingInfo(MappingInfo roleMappingInfo)
@@ -106,7 +137,17 @@
public AuditInfo getAuditInfo()
{
- return auditInfo;
+ AuditInfo bai = null;
+ ApplicationPolicy ap = this.getBaseApplicationPolicy();
+ if(ap != null)
+ bai = ap.getAuditInfo();
+
+ if(bai != null && auditInfo == null)
+ return bai;
+ else if(bai != null)
+ return (AuditInfo) auditInfo.merge(bai);
+ else
+ return auditInfo;
}
public void setAuditInfo(AuditInfo auditInfo)
@@ -116,14 +157,34 @@
public IdentityTrustInfo getIdentityTrustInfo()
{
- return identityTrustInfo;
+ IdentityTrustInfo bai = null;
+ ApplicationPolicy ap = this.getBaseApplicationPolicy();
+ if(ap != null)
+ bai = ap.getIdentityTrustInfo();
+
+ if(bai != null && identityTrustInfo == null)
+ return bai;
+ else if(bai != null)
+ return (IdentityTrustInfo) identityTrustInfo.merge(bai);
+ else
+ return identityTrustInfo;
}
public void setIdentityTrustInfo(IdentityTrustInfo identityTrustInfo)
{
this.identityTrustInfo = identityTrustInfo;
+ }
+
+ public String getBaseApplicationPolicyName()
+ {
+ return baseApplicationPolicyName;
}
+ public void setBaseApplicationPolicyName(String baseApplicationPolicy)
+ {
+ this.baseApplicationPolicyName = baseApplicationPolicy;
+ }
+
public String getName()
{
return name;
@@ -138,4 +199,17 @@
{
this.policyConfig = policyConfig;
}
+
+ private ApplicationPolicy getBaseApplicationPolicy()
+ {
+ ApplicationPolicy ap = null;
+ if(this.baseApplicationPolicyName != null)
+ {
+ ap = this.policyConfig.get(this.baseApplicationPolicyName);
+ //The base application policy may exist in a different location
+ if(ap == null)
+ ap = SecurityConfiguration.getApplicationPolicy(this.baseApplicationPolicyName);
+ }
+ return ap;
+ }
}
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicyContainer.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/ApplicationPolicyContainer.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -58,6 +58,8 @@
ApplicationPolicy info = null;
String authName = null;
+
+ String baseAppPolicyName = null;
List authenticationModuleEntries = new ArrayList();
List authorizationModuleEntries = new ArrayList();
@@ -88,6 +90,10 @@
{
authName = (String)value;
}
+ else if("extends".equals(name.getLocalPart()))
+ {
+ baseAppPolicyName = (String)value;
+ }
else if( value instanceof AppConfigurationEntryHolder )
{
AppConfigurationEntryHolder ace = (AppConfigurationEntryHolder) value;
@@ -169,6 +175,9 @@
public Object instantiate()
{
info = new ApplicationPolicy(authName);
+ if(baseAppPolicyName != null)
+ info.setBaseApplicationPolicyName(baseAppPolicyName);
+
BaseAuthenticationInfo binfo = null;
AuthorizationInfo ainfo = null;
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuditInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuditInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuditInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -21,13 +21,8 @@
*/
package org.jboss.security.config;
-import java.util.ArrayList;
-import java.util.List;
+import org.jboss.security.audit.config.AuditProviderEntry;
-import javax.security.auth.AuthPermission;
-
-import org.jboss.security.audit.config.AuditProviderEntry;
-
//$Id$
/**
@@ -36,34 +31,13 @@
* @since May 10, 2007
* @version $Revision$
*/
-public class AuditInfo
-{
- protected List<AuditProviderEntry> moduleEntries = new ArrayList<AuditProviderEntry>();
- public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
- public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
-
-
- protected String name;
-
- public AuditInfo()
- {
- }
-
- public AuditInfo(String n)
+public class AuditInfo extends BaseSecurityInfo<AuditProviderEntry>
+{
+ public AuditInfo(String name)
{
- this.name = n;
+ super(name);
}
-
- public void add(List<AuditProviderEntry> entries)
- {
- this.moduleEntries.addAll(entries);
- }
-
- public void add(AuditProviderEntry ape)
- {
- this.moduleEntries.add(ape);
- }
-
+
public AuditProviderEntry[] getAuditProviderEntry()
{
SecurityManager sm = System.getSecurityManager();
@@ -73,4 +47,10 @@
moduleEntries.toArray(entries);
return entries;
}
+
+ @Override
+ protected BaseSecurityInfo create(String name)
+ {
+ return new AuditInfo(name);
+ }
}
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuthorizationInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuthorizationInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/AuthorizationInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -21,11 +21,6 @@
*/
package org.jboss.security.config;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.security.auth.AuthPermission;
-
import org.jboss.security.authorization.config.AuthorizationModuleEntry;
//$Id$
@@ -36,34 +31,13 @@
* @since Jun 9, 2006
* @version $Revision$
*/
-public class AuthorizationInfo
-{
- public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
- public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
-
- private String name;
- protected ArrayList moduleEntries = new ArrayList();
-
+public class AuthorizationInfo extends BaseSecurityInfo<AuthorizationModuleEntry>
+{
public AuthorizationInfo(String name)
{
- this.name = name;
- }
+ super(name);
+ }
- public String getName()
- {
- return name;
- }
-
- public void add(List moduleEntries)
- {
- this.moduleEntries.addAll(moduleEntries);
- }
-
- public void add(AuthorizationModuleEntry ame)
- {
- moduleEntries.add(ame);
- }
-
public AuthorizationModuleEntry[] getAuthorizationModuleEntry()
{
SecurityManager sm = System.getSecurityManager();
@@ -73,4 +47,10 @@
moduleEntries.toArray(entries);
return entries;
}
+
+ @Override
+ protected BaseSecurityInfo create(String name)
+ {
+ return new AuthorizationInfo(name);
+ }
}
Added: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/BaseSecurityInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/BaseSecurityInfo.java (rev 0)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/BaseSecurityInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -0,0 +1,98 @@
+/*
+ * 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.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.security.auth.AuthPermission;
+
+//$Id$
+
+/**
+ * Base Class of the security info
+ * @author Anil.Saldhana at redhat.com
+ * @since Sep 27, 2007
+ * @version $Revision$
+ * @param <T>
+ */
+public abstract class BaseSecurityInfo<T>
+{
+ public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
+ public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
+ protected String name;
+ protected ArrayList<T> moduleEntries = new ArrayList<T>();
+
+ public BaseSecurityInfo()
+ {
+ }
+
+ public BaseSecurityInfo(String name)
+ {
+ this.name = name;
+ }
+
+ public void add(T ame)
+ {
+ moduleEntries.add(ame);
+ }
+
+ public void add(List moduleEntries)
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if( sm != null )
+ sm.checkPermission(SET_CONFIG_ENTRY_PERM);
+ this.moduleEntries.addAll(moduleEntries);
+ }
+
+ public List getModuleEntries()
+ {
+ SecurityManager sm = System.getSecurityManager();
+ if( sm != null )
+ sm.checkPermission(GET_CONFIG_ENTRY_PERM);
+ return this.moduleEntries;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ protected abstract BaseSecurityInfo create(String name);
+
+ public BaseSecurityInfo merge(BaseSecurityInfo bi)
+ {
+ if(bi == null)
+ return this;
+ List al = bi.getModuleEntries();
+ al.addAll(this.moduleEntries);
+ BaseSecurityInfo mergedBAI = create(name);
+ mergedBAI.add(al);
+ return mergedBAI;
+ }
+
+}
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/IdentityTrustInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/IdentityTrustInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/IdentityTrustInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -6,11 +6,6 @@
*/
package org.jboss.security.config;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.security.auth.AuthPermission;
-
import org.jboss.security.identitytrust.config.IdentityTrustModuleEntry;
/**
@@ -19,33 +14,13 @@
* @version $Revision$
* @since July 25, 2007
*/
-public class IdentityTrustInfo
-{
- public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
- public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
- protected String name;
- protected ArrayList<IdentityTrustModuleEntry> moduleEntries = new ArrayList<IdentityTrustModuleEntry>();
-
+public class IdentityTrustInfo extends BaseSecurityInfo<IdentityTrustModuleEntry>
+{
public IdentityTrustInfo(String name)
{
- this.name = name;
- }
-
- public String getName()
- {
- return name;
- }
-
- public void add(List<IdentityTrustModuleEntry> moduleEntries)
- {
- this.moduleEntries.addAll(moduleEntries);
- }
-
- public void add(IdentityTrustModuleEntry ame)
- {
- moduleEntries.add(ame);
- }
-
+ super(name);
+ }
+
public IdentityTrustModuleEntry[] getIdentityTrustModuleEntry()
{
SecurityManager sm = System.getSecurityManager();
@@ -55,9 +30,10 @@
moduleEntries.toArray(entries);
return entries;
}
-
- public void setName(String n)
- {
- this.name = n;
+
+ @Override
+ protected BaseSecurityInfo create(String name)
+ {
+ return new IdentityTrustInfo(name);
}
}
\ No newline at end of file
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/MappingInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/MappingInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/MappingInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -6,11 +6,6 @@
*/
package org.jboss.security.config;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.security.auth.AuthPermission;
-
import org.jboss.security.mapping.config.MappingModuleEntry;
/**
@@ -19,33 +14,18 @@
* @version $Revision$
* @since Aug 28, 2006
*/
-public class MappingInfo
-{
- public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
- public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
- protected String name;
- protected ArrayList<MappingModuleEntry> moduleEntries = new ArrayList<MappingModuleEntry>();
-
+public class MappingInfo extends BaseSecurityInfo<MappingModuleEntry>
+{
public MappingInfo()
{
super();
}
-
- public String getName()
+
+ public MappingInfo(String name)
{
- return name;
- }
+ super(name);
+ }
- public void add(List<MappingModuleEntry> moduleEntries)
- {
- this.moduleEntries.addAll(moduleEntries);
- }
-
- public void add(MappingModuleEntry ame)
- {
- moduleEntries.add(ame);
- }
-
public MappingModuleEntry[] getMappingModuleEntry()
{
SecurityManager sm = System.getSecurityManager();
@@ -55,9 +35,10 @@
moduleEntries.toArray(entries);
return entries;
}
-
- public void setName(String n)
- {
- this.name = n;
- }
+
+ @Override
+ protected BaseSecurityInfo create(String name)
+ {
+ return new MappingInfo(name);
+ }
}
\ No newline at end of file
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/PolicyConfig.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/PolicyConfig.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/PolicyConfig.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -44,6 +44,7 @@
public void add(ApplicationPolicy ai)
{
config.put(ai.getName(), ai);
+ ai.setPolicyConfig(this);
}
public ApplicationPolicy get(String name)
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/RoleMappingInfo.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/RoleMappingInfo.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/config/RoleMappingInfo.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -34,6 +34,6 @@
{
public RoleMappingInfo(String name)
{
- this.name = name;
+ super(name);
}
}
Modified: projects/security/security-jboss-sx/trunk/src/resources/schema/security-config_5_0.xsd
===================================================================
--- projects/security/security-jboss-sx/trunk/src/resources/schema/security-config_5_0.xsd 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/resources/schema/security-config_5_0.xsd 2007-09-28 00:30:22 UTC (rev 65668)
@@ -45,6 +45,7 @@
<xsd:element ref="jbsx:identity-trust" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="extends" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="authentication" type="jbsx:authenticationInfo"/>
@@ -81,7 +82,7 @@
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
- <xsd:element ref="jbsx:policy-module"/>
+ <xsd:element ref="jbsx:policy-module" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="roleMappingInfo">
@@ -92,7 +93,7 @@
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
- <xsd:element ref="jbsx:mapping-module"/>
+ <xsd:element ref="jbsx:mapping-module" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="auditInfo">
@@ -102,7 +103,7 @@
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
- <xsd:element ref="jbsx:provider-module"/>
+ <xsd:element ref="jbsx:provider-module" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="identityTrustInfo">
@@ -112,7 +113,7 @@
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
- <xsd:element ref="jbsx:trust-module"/>
+ <xsd:element ref="jbsx:trust-module" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
Modified: projects/security/security-jboss-sx/trunk/src/tests/org/jboss/test/security/config/SecurityConfigurationUnitTestCase.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/tests/org/jboss/test/security/config/SecurityConfigurationUnitTestCase.java 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/tests/org/jboss/test/security/config/SecurityConfigurationUnitTestCase.java 2007-09-28 00:30:22 UTC (rev 65668)
@@ -260,6 +260,32 @@
assertEquals("dummy=dr", "dr", itieOptions.get("dummy"));
}
+ public void testApplicationPolicyExtension()
+ {
+ ApplicationPolicy completeConfig = config.get("conf-jaas-extend");
+ assertNotNull("conf-jaas-extend is not null", completeConfig);
+ BaseAuthenticationInfo bai = completeConfig.getAuthenticationInfo();
+ assertNotNull("BaseAuthenticationInfo is not null", bai);
+ assertEquals("3 login modules", 3,bai.getModuleEntries().size());
+ AuthorizationInfo azi = completeConfig.getAuthorizationInfo();
+ assertNotNull("AuthorizationInfo is not null", azi);
+ assertEquals("3 authz modules", 3, azi.getModuleEntries().size());
+ //Role Mapping
+ MappingInfo mappingInfo = completeConfig.getRoleMappingInfo();
+ assertNotNull("MappingInfo is not null", mappingInfo);
+ assertEquals("1 map modules", 1, mappingInfo.getModuleEntries().size());
+ //Audit
+ AuditInfo ai = completeConfig.getAuditInfo();
+ assertNotNull("AuditInfo", ai);
+ AuditProviderEntry[] apelist = ai.getAuditProviderEntry();
+ assertEquals("Audit entry length=1", 1, apelist.length);
+ //Identity Trust
+ IdentityTrustInfo iti = completeConfig.getIdentityTrustInfo();
+ assertNotNull("IdentityTrustInfo", iti);
+ IdentityTrustModuleEntry[] itilist = iti.getIdentityTrustModuleEntry();
+ assertEquals("IdentityTrustModuleEntry length=1", 1, itilist.length);
+ }
+
private InputStreamReader loadURL(URL configURL)
throws IOException
{
Modified: projects/security/security-jboss-sx/trunk/src/tests/resources/config/securityConfig5.xml
===================================================================
--- projects/security/security-jboss-sx/trunk/src/tests/resources/config/securityConfig5.xml 2007-09-27 23:31:53 UTC (rev 65667)
+++ projects/security/security-jboss-sx/trunk/src/tests/resources/config/securityConfig5.xml 2007-09-28 00:30:22 UTC (rev 65668)
@@ -80,4 +80,33 @@
</trust-module>
</identity-trust>
</application-policy>
+
+ <application-policy name = "conf-jaas-extend" extends = "conf-complete">
+ <authentication>
+ <login-module code = "org.jboss.test.TestLoginModule"
+ flag = "required">
+ <module-option name = "name">1.3</module-option>
+ <module-option name = "succeed">true</module-option>
+ <module-option name = "throwEx">false</module-option>
+ </login-module>
+ <login-module code = "org.jboss.test.TestLoginModule"
+ flag = "required">
+ <module-option name = "name">1.4</module-option>
+ <module-option name = "succeed">true</module-option>
+ <module-option name = "throwEx">false</module-option>
+ </login-module>
+ </authentication>
+ <authorization>
+ <policy-module code = "org.jboss.test.TestPolicyModule"
+ flag = "required">
+ <module-option name = "name">authz1</module-option>
+ <module-option name = "succeed">true</module-option>
+ </policy-module>
+ <policy-module code = "org.jboss.test.TestPolicyModule"
+ flag = "required">
+ <module-option name = "name">authz2</module-option>
+ <module-option name = "succeed">true</module-option>
+ </policy-module>
+ </authorization>
+ </application-policy>
</policy>
More information about the jboss-cvs-commits
mailing list