geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From a..@apache.org
Subject svn commit: rev 57121 - geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment
Date Wed, 10 Nov 2004 03:14:43 GMT
Author: adc
Date: Tue Nov  9 19:14:42 2004
New Revision: 57121

Modified:
   geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
Log:
Temporary fix

Modified: geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
==============================================================================
--- geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
(original)
+++ geronimo/trunk/modules/jetty-builder/src/java/org/apache/geronimo/jetty/deployment/JettyModuleBuilder.java
Tue Nov  9 19:14:42 2004
@@ -53,12 +53,21 @@
 import org.apache.geronimo.naming.java.ReadOnlyContext;
 import org.apache.geronimo.schema.SchemaConversionUtils;
 import org.apache.geronimo.security.deploy.Security;
-import org.apache.geronimo.security.deployment.SecurityBuilder;
+import org.apache.geronimo.security.deploy.DefaultPrincipal;
+import org.apache.geronimo.security.deploy.Role;
+import org.apache.geronimo.security.deploy.Realm;
+import org.apache.geronimo.security.deploy.Principal;
 import org.apache.geronimo.transaction.OnlineUserTransaction;
 import org.apache.geronimo.xbeans.geronimo.jetty.JettyDependencyType;
 import org.apache.geronimo.xbeans.geronimo.jetty.JettyGbeanType;
 import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppDocument;
 import org.apache.geronimo.xbeans.geronimo.jetty.JettyWebAppType;
+import org.apache.geronimo.xbeans.geronimo.security.GerSecurityType;
+import org.apache.geronimo.xbeans.geronimo.security.GerDefaultPrincipalType;
+import org.apache.geronimo.xbeans.geronimo.security.GerRoleMappingsType;
+import org.apache.geronimo.xbeans.geronimo.security.GerRoleType;
+import org.apache.geronimo.xbeans.geronimo.security.GerRealmType;
+import org.apache.geronimo.xbeans.geronimo.security.GerPrincipalType;
 import org.apache.geronimo.xbeans.j2ee.FilterMappingType;
 import org.apache.geronimo.xbeans.j2ee.SecurityConstraintType;
 import org.apache.geronimo.xbeans.j2ee.ServletMappingType;
@@ -296,7 +305,7 @@
         UserTransaction userTransaction = new OnlineUserTransaction();
         ReadOnlyContext compContext = buildComponentContext(earContext, webModule, webApp,
jettyWebApp, userTransaction, webClassLoader);
 
-        Security security = SecurityBuilder.buildSecurityConfig(jettyWebApp.getSecurity());
+        Security security = buildSecurityConfig(jettyWebApp);
 
         GBeanMBean gbean;
         try {
@@ -442,6 +451,62 @@
         if (webApp.getSessionConfigArray().length > 1) throw new DeploymentException("Multiple
<session-config> elements found");
         if (webApp.getJspConfigArray().length > 1) throw new DeploymentException("Multiple
<jsp-config> elements found");
         if (webApp.getLoginConfigArray().length > 1) throw new DeploymentException("Multiple
<login-config> elements found");
+    }
+
+    private static Security buildSecurityConfig(JettyWebAppType jettyWebApp) {
+        Security security = null;
+
+        GerSecurityType securityType = jettyWebApp.getSecurity();
+        if (securityType != null) {
+            security = new Security();
+
+            security.setUseContextHandler(securityType.getUseContextHandler());
+
+            GerDefaultPrincipalType defaultPrincipalType = securityType.getDefaultPrincipal();
+            DefaultPrincipal defaultPrincipal = new DefaultPrincipal();
+
+            defaultPrincipal.setRealmName(defaultPrincipalType.getRealmName());
+            defaultPrincipal.setPrincipal(buildPrincipal(defaultPrincipalType.getPrincipal()));
+
+            security.setDefaultPrincipal(defaultPrincipal);
+
+            GerRoleMappingsType roleMappingsType = securityType.getRoleMappings();
+            if (roleMappingsType != null) {
+                for (int i = 0; i < roleMappingsType.sizeOfRoleArray(); i++) {
+                    GerRoleType roleType = roleMappingsType.getRoleArray(i);
+                    Role role = new Role();
+
+                    role.setRoleName(roleType.getRoleName());
+
+                    for (int j = 0; j < roleType.sizeOfRealmArray(); j++) {
+                        GerRealmType realmType = roleType.getRealmArray(j);
+                        Realm realm = new Realm();
+
+                        realm.setRealmName(realmType.getRealmName());
+
+                        for (int k = 0; k < realmType.sizeOfPrincipalArray(); k++) {
+                            realm.getPrincipals().add(buildPrincipal(realmType.getPrincipalArray(k)));
+                        }
+
+                        role.getRealms().add(realm);
+                    }
+
+                    security.getRoleMappings().add(role);
+                }
+            }
+        }
+
+        return security;
+    }
+
+    private static Principal buildPrincipal(GerPrincipalType principalType) {
+        Principal principal = new Principal();
+
+        principal.setClassName(principalType.getClass1());
+        principal.setPrincipalName(principalType.getName());
+        principal.setDesignatedRunAs(principalType.isSetDesignatedRunAs());
+
+        return principal;
     }
 
     public static final GBeanInfo GBEAN_INFO;

Mime
View raw message