[jboss-cvs] JBossAS SVN: r66516 - in trunk/tomcat/src/main/org/jboss/web/tomcat: service/deployers and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat Oct 27 04:49:08 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-27 04:49:07 -0400 (Sat, 27 Oct 2007)
New Revision: 66516

Modified:
   trunk/tomcat/src/main/org/jboss/web/tomcat/security/RunAsListener.java
   trunk/tomcat/src/main/org/jboss/web/tomcat/security/SecurityAssociationValve.java
   trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
Log:
Fix NPE in JBossContextConfig and update security role principal name usage

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/security/RunAsListener.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/security/RunAsListener.java	2007-10-27 08:23:57 UTC (rev 66515)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/security/RunAsListener.java	2007-10-27 08:49:07 UTC (rev 66516)
@@ -22,6 +22,7 @@
 package org.jboss.web.tomcat.security;
 
 import java.security.PrivilegedActionException;
+import java.util.Set;
 
 import org.apache.catalina.InstanceEvent;
 import org.apache.catalina.InstanceListener;
@@ -29,6 +30,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
 import org.jboss.security.RunAsIdentity;
 import org.jboss.security.SecurityConstants;
 import org.jboss.security.SecurityContext;
@@ -70,15 +72,21 @@
       {
          boolean trace = log.isTraceEnabled();
          String name = servlet.getName();
+         ServletMetaData servletMD = metaData.getServlets().get(name);
          SecurityRoleMetaData identity = metaData.getRunAsIdentity(name);
          RunAsIdentity runAsIdentity = null;
          if(identity != null)
          {
-            String principalName = identity.getPrincipalName();
-            if (principalName == null)
-               principalName = identity.getRoleName();
-            runAsIdentity = new RunAsIdentity(identity.getRoleName(), principalName, 
-                  identity.getPrincipals());             
+            String principalName = null; // TODO: servletMD.getRunAsPrincipal();
+            if (principalName != null)
+            {
+               Set<String> extraRoles = identity.getPrincipals();
+               runAsIdentity = new RunAsIdentity(identity.getRoleName(), principalName, extraRoles);
+            }
+            else
+            {
+               runAsIdentity = new RunAsIdentity(identity.getRoleName(), null);
+            }
          }
          
          if (trace)

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/security/SecurityAssociationValve.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/security/SecurityAssociationValve.java	2007-10-27 08:23:57 UTC (rev 66515)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/security/SecurityAssociationValve.java	2007-10-27 08:49:07 UTC (rev 66516)
@@ -23,6 +23,8 @@
 
 import java.io.IOException;
 import java.security.Principal;
+import java.util.Set;
+
 import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.servlet.ServletException;
@@ -38,6 +40,7 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
 import org.jboss.security.AuthenticationManager;
 import org.jboss.security.RunAsIdentity;   
 import org.jboss.security.plugins.JaasSecurityManagerServiceMBean; 
@@ -114,18 +117,25 @@
             if (servlet != null)
             {
                String name = servlet.getName();
+               ServletMetaData servletMD = metaData.getServlets().get(name);
                SecurityRoleMetaData identity = metaData.getRunAsIdentity(name);
-               RunAsIdentity runAs = null;
-               if (identity != null)
+               RunAsIdentity runAsIdentity = null;
+               if(identity != null)
                {
                   if (trace)
                      log.trace(name + ", runAs: " + identity);
-                  String principalName = identity.getPrincipalName();
-                  if (principalName == null)
-                     principalName = identity.getRoleName();
-                  runAs = new RunAsIdentity(identity.getRoleName(), principalName, identity.getPrincipals());
+                  String principalName = null; // TODO: servletMD.getRunAsPrincipal();
+                  if (principalName != null)
+                  {
+                     Set<String> extraRoles = identity.getPrincipals();
+                     runAsIdentity = new RunAsIdentity(identity.getRoleName(), principalName, extraRoles);
+                  }
+                  else
+                  {
+                     runAsIdentity = new RunAsIdentity(identity.getRoleName(), null);
+                  }
                }
-               SecurityAssociationActions.pushRunAsIdentity(runAs); 
+               SecurityAssociationActions.pushRunAsIdentity(runAsIdentity); 
             }
             userPrincipal.set(caller);
 

Modified: trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java
===================================================================
--- trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2007-10-27 08:23:57 UTC (rev 66515)
+++ trunk/tomcat/src/main/org/jboss/web/tomcat/service/deployers/JBossContextConfig.java	2007-10-27 08:49:07 UTC (rev 66516)
@@ -142,6 +142,7 @@
        			new org.apache.catalina.deploy.FilterDef();
        		filterDef.setFilterName(value.getName());
        		filterDef.setFilterClass(value.getFilterClass());
+            if(value.getInitParam() != null)
             for(ParamValueMetaData param : value.getInitParam())
             {
                filterDef.addInitParameter(param.getParamName(), param.getParamValue());




More information about the jboss-cvs-commits mailing list