geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From djen...@apache.org
Subject svn commit: r464046 - in /geronimo/sandbox/triplesec: ./ geronimo-triplesec-builder/ geronimo-triplesec-builder/src/ geronimo-triplesec-builder/src/main/ geronimo-triplesec-builder/src/main/java/ geronimo-triplesec-builder/src/main/java/org/ geronimo-t...
Date Sat, 14 Oct 2006 22:36:34 GMT
Author: djencks
Date: Sat Oct 14 15:36:28 2006
New Revision: 464046

URL: http://svn.apache.org/viewvc?view=rev&rev=464046
Log:
GERONIMO-2497 outline of triplesec integration

Added:
    geronimo/sandbox/triplesec/
    geronimo/sandbox/triplesec/geronimo-triplesec/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml   (with props)
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/
    geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java   (contents, props changed)
      - copied, changed from r463849, geronimo/server/trunk/modules/geronimo-security-builder/src/main/java/org/apache/geronimo/security/deployment/GeronimoSecurityBuilderImpl.java
    geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml   (with props)
    geronimo/sandbox/triplesec/geronimo-triplesec/src/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java   (with props)
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java   (with props)
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java   (with props)
    geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java   (with props)
    geronimo/sandbox/triplesec/pom.xml
      - copied, changed from r463849, geronimo/server/trunk/modules/pom.xml

Added: geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml Sat Oct 14 15:36:28 2006
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.geronimo.triplesec</groupId>
+        <artifactId>modules</artifactId>
+        <version>1.2-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>geronimo-triplesec-builder</artifactId>
+    <name>Geronimo :: TripleSec :: Builder</name>
+
+    <dependencies>
+        
+        <dependency>
+            <groupId>${pom.groupId}</groupId>
+            <artifactId>geronimo-triplesec</artifactId>
+            <version>${pom.version}</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-kernel</artifactId>
+            <version>${pom.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.modules</groupId>
+            <artifactId>geronimo-j2ee-builder</artifactId>
+            <version>${pom.version}</version>
+        </dependency>
+
+        <!--<dependency>-->
+            <!--<groupId>org.apache.geronimo.modules</groupId>-->
+            <!--<artifactId>geronimo-service-builder</artifactId>-->
+            <!--<version>${pom.version}</version>-->
+        <!--</dependency>-->
+        
+    </dependencies>
+    
+    <build>
+    </build>
+
+</project>

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Copied: geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java (from r463849, geronimo/server/trunk/modules/geronimo-security-builder/src/main/java/org/apache/geronimo/security/deployment/GeronimoSecurityBuilderImpl.java)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java?view=diff&rev=464046&p1=geronimo/server/trunk/modules/geronimo-security-builder/src/main/java/org/apache/geronimo/security/deployment/GeronimoSecurityBuilderImpl.java&r1=463849&p2=geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java&r2=464046
==============================================================================
--- geronimo/server/trunk/modules/geronimo-security-builder/src/main/java/org/apache/geronimo/security/deployment/GeronimoSecurityBuilderImpl.java (original)
+++ geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java Sat Oct 14 15:36:28 2006
@@ -15,303 +15,68 @@
  *  limitations under the License.
  */
 
-package org.apache.geronimo.security.deployment;
+package org.apache.geronimo.triplesec.builder;
 
-import java.util.Map;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Set;
-import java.util.HashSet;
-
-import javax.security.auth.Subject;
-import javax.security.auth.x500.X500Principal;
-import javax.xml.namespace.QName;
+import javax.security.jacc.PolicyContextException;
 
-import org.apache.xmlbeans.XmlObject;
-import org.apache.xmlbeans.QNameSet;
-import org.apache.geronimo.deployment.DeploymentContext;
-import org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil;
 import org.apache.geronimo.common.DeploymentException;
-import org.apache.geronimo.security.deploy.Security;
-import org.apache.geronimo.security.deploy.Role;
-import org.apache.geronimo.security.deploy.RealmPrincipalInfo;
-import org.apache.geronimo.security.deploy.LoginDomainPrincipalInfo;
-import org.apache.geronimo.security.deploy.PrincipalInfo;
-import org.apache.geronimo.security.deploy.DistinguishedName;
-import org.apache.geronimo.security.deploy.DefaultPrincipal;
-import org.apache.geronimo.security.util.ConfigurationUtil;
-import org.apache.geronimo.security.jaas.NamedUsernamePasswordCredential;
-import org.apache.geronimo.security.jacc.ApplicationPrincipalRoleConfigurationManager;
-import org.apache.geronimo.security.jacc.ApplicationPolicyConfigurationManager;
-import org.apache.geronimo.xbeans.geronimo.security.GerSecurityType;
-import org.apache.geronimo.xbeans.geronimo.security.GerRoleMappingsType;
-import org.apache.geronimo.xbeans.geronimo.security.GerRoleType;
-import org.apache.geronimo.xbeans.geronimo.security.GerDistinguishedNameType;
-import org.apache.geronimo.xbeans.geronimo.security.GerDefaultPrincipalType;
-import org.apache.geronimo.xbeans.geronimo.security.GerNamedUsernamePasswordCredentialType;
-import org.apache.geronimo.xbeans.geronimo.security.GerRealmPrincipalType;
-import org.apache.geronimo.xbeans.geronimo.security.GerLoginDomainPrincipalType;
-import org.apache.geronimo.xbeans.geronimo.security.GerPrincipalType;
-import org.apache.geronimo.xbeans.geronimo.security.GerSecurityDocument;
-import org.apache.geronimo.gbean.GBeanData;
-import org.apache.geronimo.gbean.AbstractName;
+import org.apache.geronimo.deployment.DeploymentContext;
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.kernel.Naming;
-import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
-import org.apache.geronimo.kernel.repository.Environment;
-import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.j2ee.deployment.SecurityBuilder;
 import org.apache.geronimo.j2ee.deployment.EARContext;
+import org.apache.geronimo.j2ee.deployment.SecurityBuilder;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
+import org.apache.geronimo.kernel.repository.Environment;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
+import org.apache.geronimo.security.deploy.PrincipalInfo;
+import org.apache.geronimo.security.jacc.ApplicationPolicyConfigurationManager;
+import org.apache.xmlbeans.XmlObject;
 
 /**
+ * //TODO this has nothing to do with triplesec.... consider putting it in geronimo proper.
  * @version $Rev$ $Date$
  */
-public class GeronimoSecurityBuilderImpl implements SecurityBuilder {
-    private static final QName SECURITY_QNAME = GerSecurityDocument.type.getDocumentElementName();
-    private static final QNameSet SECURITY_QNAME_SET = QNameSet.singleton(SECURITY_QNAME);
-
+public class TripleSecSecurityBuilder implements SecurityBuilder {
 
     public void buildEnvironment(XmlObject container, Environment environment) throws DeploymentException {
     }
 
     public void build(XmlObject container, DeploymentContext applicationContext, DeploymentContext moduleContext) throws DeploymentException {
         EARContext earContext = (EARContext) applicationContext;
-        XmlObject[] items = container.selectChildren(SECURITY_QNAME_SET);
-        if (items.length > 1) {
-            throw new DeploymentException("Unexpected count of security elements in geronimo plan " + items.length + " qnameset: " + SECURITY_QNAME_SET);
-        }
-        if (items.length == 1) {
-            GerSecurityType securityType = (GerSecurityType) items[0].copy().changeType(GerSecurityType.type);
-            Security security = buildSecurityConfig(securityType);
-            ClassLoader classLoader = applicationContext.getClassLoader();
-            SecurityConfiguration securityConfiguration = buildSecurityConfiguration(security, classLoader);
-            earContext.setSecurityConfiguration(securityConfiguration);
-        }
-        //add the JACC gbean if there is a principal-role mapping and we are on the corect module
-        if (earContext.getSecurityConfiguration() != null && applicationContext == moduleContext) {
-            Naming naming = earContext.getNaming();
-            GBeanData roleMapperData = configureRoleMapper(naming, earContext.getModuleName(), earContext.getSecurityConfiguration());
-            try {
-                earContext.addGBean(roleMapperData);
-            } catch (GBeanAlreadyExistsException e) {
-                throw new DeploymentException("Role mapper gbean already present", e);
-            }
-            GBeanData jaccBeanData = configureApplicationPolicyManager(naming, earContext.getModuleName(), earContext.getContextIDToPermissionsMap(), earContext.getSecurityConfiguration());
-            jaccBeanData.setReferencePattern("PrincipalRoleMapper", roleMapperData.getAbstractName());
+        //register spec dd security configuration with the jacc implementation at deploy time.
+        if (!earContext.getContextIDToPermissionsMap().isEmpty() && applicationContext == moduleContext) {
             try {
-                earContext.addGBean(jaccBeanData);
-            } catch (GBeanAlreadyExistsException e) {
-                throw new DeploymentException("JACC manager gbean already present", e);
+                //constructor registers permissions
+                new ApplicationPolicyConfigurationManager(earContext.getContextIDToPermissionsMap(), null, null, null);
+            } catch (PolicyContextException e) {
+                throw new DeploymentException("Could not configure policy", e);
+            } catch (ClassNotFoundException e) {
+                throw new DeploymentException("Could not load class while trying to configure policy", e);
             }
-            earContext.setJaccManagerName(jaccBeanData.getAbstractName());
+            //TODO role designates.... as Simon Godik pointed out, thesse should come from the logging someone in, not static configuration!
         }
     }
 
     public String getNamespace() {
-        XmlBeansUtil.registerSubstitutionGroupElements(org.apache.geronimo.xbeans.geronimo.j2ee.GerSecurityDocument.type.getDocumentElementName(), SECURITY_QNAME_SET);
-
-        return GerSecurityDocument.type.getDocumentElementName().getLocalPart();
-    }
 
-    private static SecurityConfiguration buildSecurityConfiguration(Security security, ClassLoader classLoader) {
-        Map roleDesignates = new HashMap();
-        Map principalRoleMap = new HashMap();
-        Map roleToPrincipalMap = new HashMap();
-        GeronimoSecurityBuilderImpl.buildRolePrincipalMap(security, roleDesignates, roleToPrincipalMap, classLoader);
-        GeronimoSecurityBuilderImpl.invertMap(roleToPrincipalMap, principalRoleMap);
-        return new SecurityConfiguration(principalRoleMap, roleDesignates, security.getDefaultPrincipal(), security.getDefaultRole(), security.isDoAsCurrentCaller(), security.isUseContextHandler());
-    }
-
-    private static Map invertMap(Map roleToPrincipalMap, Map principalRoleMapping) {
-        for (Iterator roles = roleToPrincipalMap.entrySet().iterator(); roles.hasNext();) {
-            Map.Entry entry = (Map.Entry) roles.next();
-            String role = (String) entry.getKey();
-            Set principals = (Set) entry.getValue();
-            for (Iterator iter = principals.iterator(); iter.hasNext();) {
-                java.security.Principal principal = (java.security.Principal) iter.next();
-
-                HashSet roleSet = (HashSet) principalRoleMapping.get(principal);
-                if (roleSet == null) {
-                    roleSet = new HashSet();
-                    principalRoleMapping.put(principal, roleSet);
-                }
-                roleSet.add(role);
-            }
-        }
-        return principalRoleMapping;
-    }
-
-    /**
-     * non-interface, used in some jetty/tomcat tests
-     *
-     * @param security
-     * @param roleDesignates
-     * @param roleToPrincipalMap
-     * @param classLoader
-     */
-    public static void buildRolePrincipalMap(Security security, Map roleDesignates, Map roleToPrincipalMap, ClassLoader classLoader) {
-
-        Iterator roleMappings = security.getRoleMappings().values().iterator();
-        while (roleMappings.hasNext()) {
-            Role role = (Role) roleMappings.next();
-
-            String roleName = role.getRoleName();
-            Subject roleDesignate = new Subject();
-            Set principalSet = new HashSet();
-
-            Iterator realmPrincipals = role.getRealmPrincipals().iterator();
-            while (realmPrincipals.hasNext()) {
-                RealmPrincipalInfo realmPrincipal = (RealmPrincipalInfo) realmPrincipals.next();
-                java.security.Principal principal = ConfigurationUtil.generateRealmPrincipal(realmPrincipal.getRealm(), realmPrincipal.getDomain(), realmPrincipal, classLoader);
-
-                principalSet.add(principal);
-                if (realmPrincipal.isDesignatedRunAs()) roleDesignate.getPrincipals().add(principal);
-            }
-
-            Iterator domainPrincipals = role.getLoginDomainPrincipals().iterator();
-            while (domainPrincipals.hasNext()) {
-                LoginDomainPrincipalInfo domainPrincipal = (LoginDomainPrincipalInfo) domainPrincipals.next();
-                java.security.Principal principal = ConfigurationUtil.generateDomainPrincipal(domainPrincipal.getDomain(), domainPrincipal, classLoader);
-
-                principalSet.add(principal);
-                if (domainPrincipal.isDesignatedRunAs()) roleDesignate.getPrincipals().add(principal);
-            }
-
-            Iterator principals = role.getPrincipals().iterator();
-            while (principals.hasNext()) {
-                PrincipalInfo plainPrincipalInfo = (PrincipalInfo) principals.next();
-                java.security.Principal principal = ConfigurationUtil.generatePrincipal(plainPrincipalInfo, classLoader);
-
-                principalSet.add(principal);
-                if (plainPrincipalInfo.isDesignatedRunAs()) roleDesignate.getPrincipals().add(principal);
-            }
-
-            for (Iterator names = role.getDistinguishedNames().iterator(); names.hasNext();) {
-                DistinguishedName dn = (DistinguishedName) names.next();
-
-                X500Principal x500Principal = ConfigurationUtil.generateX500Principal(dn.getName());
-
-                principalSet.add(x500Principal);
-                if (dn.isDesignatedRunAs()) roleDesignate.getPrincipals().add(x500Principal);
-            }
-
-            Set roleMapping = (Set) roleToPrincipalMap.get(roleName);
-            if (roleMapping == null) {
-                roleMapping = new HashSet();
-                roleToPrincipalMap.put(roleName, roleMapping);
-            }
-            roleMapping.addAll(principalSet);
-
-            if (roleDesignate.getPrincipals().size() > 0) {
-                roleDesignates.put(roleName, roleDesignate);
-            }
-        }
-    }
-
-    private Security buildSecurityConfig(GerSecurityType securityType) {
-        Security security;
-
-        if (securityType == null) {
-            return null;
-        }
-        security = new Security();
-
-        security.setDoAsCurrentCaller(securityType.getDoasCurrentCaller());
-        security.setUseContextHandler(securityType.getUseContextHandler());
-        if (securityType.isSetDefaultRole()) {
-            security.setDefaultRole(securityType.getDefaultRole().trim());
-        }
-
-        if (securityType.isSetRoleMappings()) {
-            GerRoleMappingsType roleMappingsType = securityType.getRoleMappings();
-            for (int i = 0; i < roleMappingsType.sizeOfRoleArray(); i++) {
-                GerRoleType roleType = roleMappingsType.getRoleArray(i);
-                Role role = new Role();
-
-                String roleName = roleType.getRoleName().trim();
-                role.setRoleName(roleName);
-
-                for (int j = 0; j < roleType.sizeOfRealmPrincipalArray(); j++) {
-                    role.getRealmPrincipals().add(GeronimoSecurityBuilderImpl.buildRealmPrincipal(roleType.getRealmPrincipalArray(j)));
-                }
-
-                for (int j = 0; j < roleType.sizeOfLoginDomainPrincipalArray(); j++) {
-                    role.getLoginDomainPrincipals().add(GeronimoSecurityBuilderImpl.buildDomainPrincipal(roleType.getLoginDomainPrincipalArray(j)));
-                }
-
-                for (int j = 0; j < roleType.sizeOfPrincipalArray(); j++) {
-                    role.getPrincipals().add(buildPrincipal(roleType.getPrincipalArray(j)));
-                }
-
-                for (int j = 0; j < roleType.sizeOfDistinguishedNameArray(); j++) {
-                    GerDistinguishedNameType dnType = roleType.getDistinguishedNameArray(j);
-
-                    role.getDistinguishedNames().add(new DistinguishedName(dnType.getName().trim(), dnType.getDesignatedRunAs()));
-                }
-
-                security.getRoleMappings().put(roleName, role);
-            }
-        }
-
-        security.setDefaultPrincipal(buildDefaultPrincipal(securityType.getDefaultPrincipal()));
-
-        return security;
+        return "";
     }
 
     //used from app client builder
     public DefaultPrincipal buildDefaultPrincipal(XmlObject xmlObject) {
-        GerDefaultPrincipalType defaultPrincipalType = (GerDefaultPrincipalType) xmlObject;
-        DefaultPrincipal defaultPrincipal = new DefaultPrincipal();
-
-        defaultPrincipal.setPrincipal(buildPrincipal(defaultPrincipalType.getPrincipal()));
-        GerNamedUsernamePasswordCredentialType[] namedCredentials = defaultPrincipalType.getNamedUsernamePasswordCredentialArray();
-        if (namedCredentials.length > 0) {
-            Set defaultCredentialSet = new HashSet();
-            for (int i = 0; i < namedCredentials.length; i++) {
-                GerNamedUsernamePasswordCredentialType namedCredentialType = namedCredentials[i];
-                NamedUsernamePasswordCredential namedCredential = new NamedUsernamePasswordCredential(namedCredentialType.getUsername().trim(), namedCredentialType.getPassword().trim().toCharArray(), namedCredentialType.getName().trim());
-                defaultCredentialSet.add(namedCredential);
-            }
-            defaultPrincipal.setNamedUserPasswordCredentials(defaultCredentialSet);
-        }
-        return defaultPrincipal;
-    }
-
-    private static RealmPrincipalInfo buildRealmPrincipal(GerRealmPrincipalType realmPrincipalType) {
-        return new RealmPrincipalInfo(realmPrincipalType.getDomainName().trim(), realmPrincipalType.getRealmName().trim(), realmPrincipalType.getClass1().trim(), realmPrincipalType.getName().trim(), realmPrincipalType.isSetDesignatedRunAs());
-    }
-
-    private static LoginDomainPrincipalInfo buildDomainPrincipal(GerLoginDomainPrincipalType domainPrincipalType) {
-        return new LoginDomainPrincipalInfo(domainPrincipalType.getDomainName().trim(), domainPrincipalType.getClass1().trim(), domainPrincipalType.getName().trim(), domainPrincipalType.isSetDesignatedRunAs());
+        throw new IllegalStateException("default principals not available");
     }
 
     //used from TSSConfigEditor
     public PrincipalInfo buildPrincipal(XmlObject xmlObject) {
-        GerPrincipalType principalType = (GerPrincipalType) xmlObject;
-        return new PrincipalInfo(principalType.getClass1().trim(), principalType.getName().trim(), principalType.isSetDesignatedRunAs());
+        throw new IllegalStateException("staticly specified principals not available");
     }
 
-    public GBeanData configureRoleMapper(Naming naming, AbstractName moduleName, Object securityConfiguration) {
-        AbstractName roleMapperName = naming.createChildName(moduleName, "RoleMapper", "RoleMapper");
-        GBeanData roleMapperData = new GBeanData(roleMapperName, ApplicationPrincipalRoleConfigurationManager.GBEAN_INFO);
-        roleMapperData.setAttribute("principalRoleMap", ((SecurityConfiguration) securityConfiguration).getPrincipalRoleMap());
-        return roleMapperData;
-    }
-
-    public GBeanData configureApplicationPolicyManager(Naming naming, AbstractName moduleName, Map contextIDToPermissionsMap, Object securityConfiguration) {
-        AbstractName jaccBeanName = naming.createChildName(moduleName, NameFactory.JACC_MANAGER, NameFactory.JACC_MANAGER);
-        GBeanData jaccBeanData = new GBeanData(jaccBeanName, ApplicationPolicyConfigurationManager.GBEAN_INFO);
-        jaccBeanData.setAttribute("contextIdToPermissionsMap", contextIDToPermissionsMap);
-        jaccBeanData.setAttribute("roleDesignates", ((SecurityConfiguration) securityConfiguration).getRoleDesignates());
-        return jaccBeanData;
-
-    }
 
     public static final GBeanInfo GBEAN_INFO;
 
     static {
-        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(GeronimoSecurityBuilderImpl.class, NameFactory.MODULE_BUILDER);
+        GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic(TripleSecSecurityBuilder.class, NameFactory.MODULE_BUILDER);
 
         infoFactory.addInterface(SecurityBuilder.class);
 

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java
------------------------------------------------------------------------------
    svn:keywords = Date Author Id Revision HeadURL

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec-builder/src/main/java/org/apache/geronimo/triplesec/builder/TripleSecSecurityBuilder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml Sat Oct 14 15:36:28 2006
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright 2006 The Apache Software Foundation
+
+    Licensed under the Apache License, Version 2.0 (the "License");
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+  
+       http://www.apache.org/licenses/LICENSE-2.0
+  
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+
+<!-- $Rev$ $Date$ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.geronimo.triplesec</groupId>
+        <artifactId>modules</artifactId>
+        <version>1.2-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>geronimo-triplesec</artifactId>
+    <name>Geronimo :: TripleSec</name>
+    
+    <dependencies>
+        
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-j2ee-jacc_1.0_spec</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+
+    </dependencies>
+    
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <systemProperties>
+                        <property>
+                            <name>java.security.auth.login.config</name>
+                            <value>${pom.basedir}/src/test/data/data/login.config</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+    
+</project>
+

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java Sat Oct 14 15:36:28 2006
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.triplesec;
+
+import java.security.Permissions;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class PermissionsHolder {
+
+    private final Permissions granted;
+    private final Permissions denied;
+
+    public PermissionsHolder(Permissions granted, Permissions denied) {
+        this.granted = granted;
+        this.denied = denied;
+    }
+
+    public Permissions getGranted() {
+        return granted;
+    }
+
+    public Permissions getDenied() {
+        return denied;
+    }
+}

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/PermissionsHolder.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java Sat Oct 14 15:36:28 2006
@@ -0,0 +1,170 @@
+/**
+ *
+ * Copyright 2003-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.triplesec;
+
+import java.security.Permission;
+import java.security.PermissionCollection;
+import java.security.Permissions;
+import java.security.Principal;
+import java.security.ProtectionDomain;
+import java.util.Enumeration;
+
+import javax.security.jacc.PolicyConfiguration;
+import javax.security.jacc.PolicyContextException;
+
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TripleSecPolicyConfiguration implements PolicyConfiguration {
+    final static int OPEN = 1;
+    final static int IN_SERVICE = 2;
+    final static int DELETED = 3;
+
+    private final String contextID;
+    private int state;
+
+    TripleSecPolicyConfiguration(String contextID) {
+        this.contextID = contextID;
+        this.state = OPEN;
+    }
+
+    public String getContextID() throws PolicyContextException {
+        return contextID;
+    }
+
+    public boolean implies(ProtectionDomain domain, Permission permission) {
+
+        Principal[] principals = domain.getPrincipals();
+        if (principals.length == 0) return false;
+
+        for (int i = 0; i < principals.length; i++) {
+            Principal principal = principals[i];
+            if (principal instanceof TripleSecPrincipal) {
+                PermissionsHolder permissionsHolder = ((TripleSecPrincipal)principal).getPermissionsHolder(contextID);
+
+                Permissions denied = permissionsHolder.getDenied();
+                if (denied.implies(permission)) return false;
+
+                Permissions granted = permissionsHolder.getGranted();
+                //only look for one TripleSec permission
+                return granted.implies(permission);
+
+            }
+        }
+        // if no TripleSec principal found, deny access.
+        return false;
+    }
+
+    public void addToRole(String roleName, PermissionCollection permissions) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        Enumeration e = permissions.elements();
+        while (e.hasMoreElements()) {
+            addToRole(roleName, (Permission) e.nextElement());
+        }
+    }
+
+    public void addToRole(String roleName, Permission permission) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO Install contextId/rolename to permission association in TripleSec LDAP
+    }
+
+    public void addToUncheckedPolicy(PermissionCollection permissions) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        Enumeration e = permissions.elements();
+        while (e.hasMoreElements()) {
+            addToUncheckedPolicy((Permission) e.nextElement());
+        }
+    }
+
+    public void addToUncheckedPolicy(Permission permission) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO Install permission association in TripleSec LDAP unchecked role
+    }
+
+    public void addToExcludedPolicy(PermissionCollection permissions) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        Enumeration e = permissions.elements();
+        while (e.hasMoreElements()) {
+            addToExcludedPolicy((Permission) e.nextElement());
+        }
+    }
+
+    public void addToExcludedPolicy(Permission permission) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO Install permission association in TripleSec LDAP excluded (denied) role
+    }
+
+    public void removeRole(String roleName) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO remove contextId/role (?? maybe role in all contextIds?) from TripleSec LDAP
+    }
+
+    public void removeUncheckedPolicy() throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO remove contextId/unchecked (?? maybe unchecked in all contextIds?) from TripleSec LDAP
+    }
+
+    public void removeExcludedPolicy() throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        //TODO remove contextId/excluded (?? maybe excluded in all contextIds?) from TripleSec LDAP
+    }
+
+    public void linkConfiguration(javax.security.jacc.PolicyConfiguration link) throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+    }
+
+    public void delete() throws PolicyContextException {
+        state = DELETED;
+    }
+
+    public void commit() throws PolicyContextException {
+        if (state != OPEN) throw new UnsupportedOperationException("Not in an open state");
+
+        state = IN_SERVICE;
+    }
+
+    public boolean inService() throws PolicyContextException {
+        return (state == IN_SERVICE);
+    }
+
+    //TODO I have no idea what side effects this might have, but it's needed in some form from GeronimoPolicyConfigurationFactory.
+    //see JACC spec 1.0 section 3.1.1.1 discussion of in service and deleted.
+    //spec p. 31 3.1.7 on the effects of remove:
+    //If the getPolicyConfiguration method  is used, the value true should be passed as the second
+    //  argument to cause the  corresponding policy statements to be deleted from the context.
+    public void open(boolean remove) {
+        if (remove) {
+            //TODO Clear triplesec ldap for this contextId (??)
+        }
+        state = OPEN;
+    }
+
+    int getState() {
+        return state;
+    }
+}

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfiguration.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java Sat Oct 14 15:36:28 2006
@@ -0,0 +1,72 @@
+/**
+ *
+ * Copyright 2003-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.triplesec;
+
+import java.util.HashMap;
+import java.util.Map;
+import javax.security.jacc.PolicyConfiguration;
+import javax.security.jacc.PolicyConfigurationFactory;
+import javax.security.jacc.PolicyContextException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class TripleSecPolicyConfigurationFactory extends PolicyConfigurationFactory {
+
+    private final Log log = LogFactory.getLog(TripleSecPolicyConfigurationFactory.class);
+    private static TripleSecPolicyConfigurationFactory singleton;
+    private Map configurations = new HashMap();
+
+    public TripleSecPolicyConfigurationFactory() {
+        synchronized (TripleSecPolicyConfigurationFactory.class) {
+            if (singleton != null) {
+                log.error("Singleton already assigned.  There may be more than one TripleSecPolicyConfigurationFactory being used.");
+                throw new IllegalStateException("Singleton already assigned");
+            }
+            singleton = this;
+        }
+    }
+
+    public PolicyConfiguration getPolicyConfiguration(String contextID, boolean remove) throws PolicyContextException {
+        TripleSecPolicyConfiguration configuration = (TripleSecPolicyConfiguration) configurations.get(contextID);
+
+        if (configuration == null) {
+            configuration = new TripleSecPolicyConfiguration(contextID);
+            configurations.put(contextID, configuration);
+        } else {
+            configuration.open(remove);
+        }
+
+        log.trace("Get " + (remove ? "CLEANED" : "") + " policy configuration " + contextID);
+        return configuration;
+    }
+
+    public boolean inService(String contextID) throws PolicyContextException {
+        PolicyConfiguration configuration = getPolicyConfiguration(contextID, false);
+
+        log.trace("Policy configuration " + contextID + " put into service");
+        return configuration.inService();
+    }
+
+    static TripleSecPolicyConfigurationFactory getSingleton() {
+        return singleton;
+    }
+}

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPolicyConfigurationFactory.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java?view=auto&rev=464046
==============================================================================
--- geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java (added)
+++ geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java Sat Oct 14 15:36:28 2006
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+package org.apache.geronimo.triplesec;
+
+import java.security.Principal;
+import java.util.Map;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class TripleSecPrincipal implements Principal {
+
+    private final String name;
+    private final Map permissionsMap;
+
+    public TripleSecPrincipal(String name, Map permissionsMap) {
+        this.name = name;
+        this.permissionsMap = permissionsMap;
+    }
+
+
+    public String getName() {
+        return name;
+    }
+
+    public PermissionsHolder getPermissionsHolder(String policyContextId) {
+        return (PermissionsHolder) permissionsMap.get(policyContextId);
+    }
+}

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java
------------------------------------------------------------------------------
    svn:keywords = Date Revision

Propchange: geronimo/sandbox/triplesec/geronimo-triplesec/src/main/java/org/apache/geronimo/triplesec/TripleSecPrincipal.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Copied: geronimo/sandbox/triplesec/pom.xml (from r463849, geronimo/server/trunk/modules/pom.xml)
URL: http://svn.apache.org/viewvc/geronimo/sandbox/triplesec/pom.xml?view=diff&rev=464046&p1=geronimo/server/trunk/modules/pom.xml&r1=463849&p2=geronimo/sandbox/triplesec/pom.xml&r2=464046
==============================================================================
--- geronimo/server/trunk/modules/pom.xml (original)
+++ geronimo/sandbox/triplesec/pom.xml Sat Oct 14 15:36:28 2006
@@ -25,12 +25,11 @@
         <groupId>org.apache.geronimo</groupId>
         <artifactId>geronimo</artifactId>
         <version>1.2-SNAPSHOT</version>
-        <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <groupId>org.apache.geronimo.modules</groupId>
+    <groupId>org.apache.geronimo.triplesec</groupId>
     <artifactId>modules</artifactId>
-    <name>Geronimo :: Modules</name>
+    <name>Geronimo :: TrpileSec Modules</name>
     <packaging>pom</packaging>
     
     <dependencies>
@@ -45,56 +44,8 @@
     </dependencies>
     
     <modules>
-        <module>geronimo-activation</module>
-        <module>ge-activemq-rar</module>
-        <module>geronimo-activemq-gbean</module>
-        <module>geronimo-activemq-gbean-management</module>
-        <module>geronimo-axis</module>
-        <module>geronimo-axis-builder</module>
-        <module>geronimo-client</module>
-        <module>geronimo-client-builder</module>
-        <module>geronimo-clustering</module>
-        <module>geronimo-clustering-builder-wadi</module>
-        <module>geronimo-clustering-wadi</module>
-        <module>geronimo-common</module>
-        <module>geronimo-connector</module>
-        <module>geronimo-connector-builder</module>
-        <module>geronimo-converter</module>
-        <module>geronimo-core</module>
-        <module>geronimo-deploy-config</module>
-        <module>geronimo-deploy-jsr88</module>
-        <module>geronimo-deploy-tool</module>
-        <module>geronimo-deployment</module>
-        <module>geronimo-derby</module>
-        <module>geronimo-directory</module>
-        <module>geronimo-hot-deploy</module>
-        <module>geronimo-interceptor</module>
-        <module>geronimo-j2ee</module>
-        <module>geronimo-j2ee-builder</module>
-        <module>geronimo-j2ee-schema</module>
-        <module>geronimo-jetty</module>
-        <module>geronimo-jetty-clustering-wadi</module>
-        <module>geronimo-jetty-builder</module>
-        <module>geronimo-jmx-remoting</module>
-        <module>geronimo-kernel</module>
-        <module>geronimo-mail</module>
-        <module>geronimo-management</module>
-        <module>geronimo-naming</module>
-        <module>geronimo-naming-builder</module>
-        <module>geronimo-security</module>
-        <module>geronimo-security-builder</module>
-        <module>geronimo-service-builder</module>
-        <module>geronimo-system</module>
-        <module>geronimo-test-ddbean</module>
-        <module>geronimo-timer</module>
-        <module>geronimo-tomcat</module>
-        <module>geronimo-tomcat-builder</module>
-        <module>geronimo-transaction</module>
-        <module>geronimo-upgrade</module>
-        <module>geronimo-util</module>
-        <module>geronimo-web-builder</module>
-        <module>geronimo-webservices</module>
-
+        <module>geronimo-triplesec</module>
+        <module>geronimo-triplesec-builder</module>
     </modules>
     
 </project>



Mime
View raw message