You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jg...@apache.org on 2005/08/12 13:18:56 UTC

svn commit: r232271 - in /geronimo/trunk/modules/tomcat/src: java/org/apache/geronimo/tomcat/TomcatContainer.java java/org/apache/geronimo/tomcat/TomcatWebAppContext.java test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java

Author: jgenender
Date: Fri Aug 12 04:18:53 2005
New Revision: 232271

URL: http://svn.apache.org/viewcvs?rev=232271&view=rev
Log:
Added a default JAAS Realm if geronimo-web.xml contains a security-realm-name and a TomcatJAASRealm with the same name does not exist

Modified:
    geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
    geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
    geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java

Modified: geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java?rev=232271&r1=232270&r2=232271&view=diff
==============================================================================
--- geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java (original)
+++ geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatContainer.java Fri Aug 12 04:18:53 2005
@@ -37,6 +37,7 @@
 import org.apache.geronimo.gbean.GBeanLifecycle;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 import org.apache.geronimo.system.serverinfo.ServerInfo;
+import org.apache.geronimo.tomcat.realm.TomcatJAASRealm;
 import org.apache.geronimo.tomcat.util.SecurityHolder;
 import org.apache.geronimo.webservices.SoapHandler;
 import org.apache.geronimo.webservices.WebServiceContainer;
@@ -215,15 +216,31 @@
             //geronimo-web.xml file to be used if our Realm is a JAAS type
             if (securityRealmName != null){
                 if (realm instanceof JAASRealm){
-                    ((JAASRealm)realm).setAppName(secHolder.getSecurityRealm());
+                    ((JAASRealm)realm).setAppName(securityRealmName);
                 }
             }
             anotherCtxObj.setRealm(realm);
         } else {
+            Realm realm = host.getRealm();
+            //Check and see if we have a declared realm name and no match to a parent name
             if (securityRealmName != null){
-                log.warn("security-realm-name was specified but no RealmGBean was configured for this context.  Ignoring security-realm-name.");
+                String parentRealmName = null;
+                if (realm instanceof JAASRealm){
+                    parentRealmName = ((JAASRealm)realm).getAppName();
+                }
+                if(!securityRealmName.equals(parentRealmName)){
+                    log.warn("The security-realm-name '" + securityRealmName + "' was specified and a parent (Engine/Host) is not named the same or no RealmGBean was configured for this context.  Creating a default TomcatJAASRealm adapter for this context.");
+                    TomcatJAASRealm jaasRealm = new TomcatJAASRealm();
+                    jaasRealm.setUserClassNames("org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal");
+                    jaasRealm.setRoleClassNames("org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal");
+                    jaasRealm.setAppName(securityRealmName);
+                    anotherCtxObj.setRealm(jaasRealm);
+                } else {
+                    anotherCtxObj.setRealm(realm);
+                }
+            } else {
+                anotherCtxObj.setRealm(realm);
             }
-            anotherCtxObj.setRealm(host.getRealm());
         }            
 
         host.addChild(anotherCtxObj);

Modified: geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java?rev=232271&r1=232270&r2=232271&view=diff
==============================================================================
--- geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java (original)
+++ geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java Fri Aug 12 04:18:53 2005
@@ -364,7 +364,7 @@
         // Is it necessary - doesn't Tomcat Embedded take care of it?
         // super.start();
 
-        log.info("TomcatWebAppContext started");
+        log.info("TomcatWebAppContext started for " + path);
     }
 
     public void doStop() throws Exception {

Modified: geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java?rev=232271&r1=232270&r2=232271&view=diff
==============================================================================
--- geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java (original)
+++ geronimo/trunk/modules/tomcat/src/test/org/apache/geronimo/tomcat/AbstractWebModuleTest.java Fri Aug 12 04:18:53 2005
@@ -190,7 +190,7 @@
         securityHolder.setExcluded(componentPermissions.getExcludedPermissions());
         securityHolder.setPolicyContextID(POLICY_CONTEXT_ID);
         securityHolder.setDefaultPrincipal(defaultPrincipal);
-        securityHolder.setSecurityRealm(REALM_NAME);
+        securityHolder.setSecurityRealm("Geronimo");
         GBeanData app = new GBeanData(webModuleName, TomcatWebAppContext.GBEAN_INFO);
         app.setAttribute("classLoader", cl);
         app.setAttribute("webAppRoot", new File("target/var/catalina/webapps/war3/").toURI());