[jboss-cvs] JBossAS SVN: r78222 - in trunk: webservices and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Sep 8 23:12:00 EDT 2008


Author: anil.saldhana at jboss.com
Date: 2008-09-08 23:11:59 -0400 (Mon, 08 Sep 2008)
New Revision: 78222

Modified:
   trunk/server/src/main/org/jboss/deployment/security/AbstractSecurityDeployer.java
   trunk/server/src/main/org/jboss/deployment/security/JaccPolicy.java
   trunk/server/src/main/org/jboss/deployment/security/PolicyConfigurationFacade.java
   trunk/webservices/.classpath
   trunk/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java
Log:
JBAS-5935: JBossWS deployer needs to create jacc perms for the dynamic web app it generates for EJB based WS deployments

Modified: trunk/server/src/main/org/jboss/deployment/security/AbstractSecurityDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/security/AbstractSecurityDeployer.java	2008-09-09 01:31:17 UTC (rev 78221)
+++ trunk/server/src/main/org/jboss/deployment/security/AbstractSecurityDeployer.java	2008-09-09 03:11:59 UTC (rev 78222)
@@ -201,4 +201,4 @@
             ",parent=\"" + parentDU.getSimpleName() + "\"" : "";
       return BASE_OBJECT_NAME  + "\"" + deploymentName + "\"" + parentDeploymentName;
    }
-}
\ No newline at end of file
+}

Modified: trunk/server/src/main/org/jboss/deployment/security/JaccPolicy.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/security/JaccPolicy.java	2008-09-09 01:31:17 UTC (rev 78221)
+++ trunk/server/src/main/org/jboss/deployment/security/JaccPolicy.java	2008-09-09 03:11:59 UTC (rev 78222)
@@ -185,7 +185,7 @@
       if(parentPC == null)
       {
          PolicyConfigurationFactory pcf = PolicyConfigurationFactory.getPolicyConfigurationFactory();
-         parentPC = pcf.getPolicyConfiguration(contextID, true);
+         parentPC = pcf.getPolicyConfiguration(contextID, false);
       }
    }
    

Modified: trunk/server/src/main/org/jboss/deployment/security/PolicyConfigurationFacade.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/security/PolicyConfigurationFacade.java	2008-09-09 01:31:17 UTC (rev 78221)
+++ trunk/server/src/main/org/jboss/deployment/security/PolicyConfigurationFacade.java	2008-09-09 03:11:59 UTC (rev 78222)
@@ -28,7 +28,6 @@
 import org.jboss.logging.Logger;
 import org.jboss.metadata.javaee.support.IdMetaData;
 
-//$Id$
 
 /**
  *  A facade for the JACC Policy Configuration
@@ -62,7 +61,7 @@
       try
       { 
          PolicyConfigurationFactory pcf = PolicyConfigurationFactory.getPolicyConfigurationFactory();
-         policyConfiguration = pcf.getPolicyConfiguration(this.jaccContextId, true);
+         policyConfiguration = pcf.getPolicyConfiguration(this.jaccContextId, false);
          
          createPermissions(metaData, policyConfiguration);
       }

Modified: trunk/webservices/.classpath
===================================================================
--- trunk/webservices/.classpath	2008-09-09 01:31:17 UTC (rev 78221)
+++ trunk/webservices/.classpath	2008-09-09 03:11:59 UTC (rev 78222)
@@ -8,5 +8,6 @@
 	<classpathentry exported="true" kind="lib" path="/thirdparty/org/jboss/ws/lib/jbossws-framework.jar" sourcepath="/thirdparty/org/jboss/ws/lib/jbossws-framework-src.zip"/>
 	<classpathentry kind="lib" path="/thirdparty/jboss/jboss-deployers/lib/jboss-deployers-client.jar" sourcepath="/thirdparty/jboss/jboss-deployers/lib/jboss-deployers-client-sources.jar"/>
 	<classpathentry kind="lib" path="/thirdparty/org/jboss/ws/lib/jbossws-spi.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/server"/>
 	<classpathentry kind="output" path="output/eclipse-classes"/>
 </classpath>

Modified: trunk/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java
===================================================================
--- trunk/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java	2008-09-09 01:31:17 UTC (rev 78221)
+++ trunk/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java	2008-09-09 03:11:59 UTC (rev 78222)
@@ -21,8 +21,12 @@
  */
 package org.jboss.wsf.container.jboss50.transport;
 
-import org.jboss.deployers.structure.spi.DeploymentUnit;
+import javax.security.jacc.PolicyConfiguration;
+import javax.security.jacc.PolicyConfigurationFactory;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit; 
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.web.WebPermissionMapping;
 import org.jboss.wsf.container.jboss50.deployment.tomcat.WebMetaDataModifier;
 import org.jboss.wsf.spi.deployment.Deployment;
 import org.jboss.wsf.spi.deployment.WSFDeploymentException;
@@ -34,6 +38,7 @@
  * 
  * @author Thomas.Diesler at jboss.org
  * @author Heiko.Braun at jboss.com
+ * @author Anil.Saldhana at jboss.com
  * 
  * @since 12-May-2006
  */
@@ -62,10 +67,21 @@
          try
          {
             webMetaDataModifier.modifyMetaData(dep);
+            
+
+            //Generate the JACC permissions here
+            try
+            {
+               generateJACCPermissions(dep.getSimpleName(), jbwmd);
+            }
+            catch (Exception e)
+            {
+               throw new RuntimeException("Exception generating JACC perms:",e);
+            }
          
             // Attaching it to the DeploymentUnit will cause a new webapp deployment
             unit.addAttachment(JBossWebMetaData.class, jbwmd);
-            unit.addAttachment(HttpSpec.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE);
+            unit.addAttachment(HttpSpec.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE); 
 
          }
          catch (Exception ex)
@@ -85,4 +101,24 @@
    {
       // nothing to do?
    }
+   
+   /**
+    * JBAS-5935: The dynamic web application generated by the JBossWS
+    * does not go through the war security deployer. Hence the JACC
+    * permissions are not created. There is a need to explicitly create
+    * the war jacc permissions.
+    * @param depName
+    * @param jbwmd
+    * @throws Exception
+    */
+   protected void generateJACCPermissions(String depName, JBossWebMetaData jbwmd)
+   throws Exception
+   {
+      PolicyConfigurationFactory policyConfigurationFactory = 
+         PolicyConfigurationFactory.getPolicyConfigurationFactory();
+      PolicyConfiguration policyConfiguration = 
+         policyConfigurationFactory.getPolicyConfiguration(depName, false);
+      WebPermissionMapping.createPermissions(jbwmd, policyConfiguration);
+      policyConfiguration.commit();
+   }
 }




More information about the jboss-cvs-commits mailing list