[jboss-svn-commits] JBL Code SVN: r21471 - in labs/jbossesb/workspace/dbevenius/security/product/rosetta: src/org/jboss/soa/esb/listeners/gateway and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 12 10:37:22 EDT 2008


Author: beve
Date: 2008-08-12 10:37:22 -0400 (Tue, 12 Aug 2008)
New Revision: 21471

Added:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml
Removed:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml
Modified:
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/build.xml
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
   labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
Log:
Added the WS Securityinfo extraction to JBossRemotingGatewayListener.


Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/build.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/build.xml	2008-08-12 13:31:39 UTC (rev 21470)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/build.xml	2008-08-12 14:37:22 UTC (rev 21471)
@@ -91,6 +91,7 @@
                 >
         	<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.groovy"/>
             <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.properties"/>
+            <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml"/>
        	</jar>
     	
         <jar destfile="${org.jboss.esb.rosetta.distrib.dir}/lib/test-util.jar" manifest="${org.jboss.esb.rosetta.classes.dir}/MANIFEST.MF">

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java	2008-08-12 13:31:39 UTC (rev 21470)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java	2008-08-12 14:37:22 UTC (rev 21471)
@@ -52,6 +52,7 @@
 import org.jboss.soa.esb.services.security.SecurityService;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
 import org.jboss.soa.esb.services.security.auth.http.JbrHttpSecurityInfoExtractor;
+import org.jboss.soa.esb.services.security.auth.ws.WSSecurityInfoExtractor;
 import org.jboss.soa.esb.util.ClassUtil;
 
 import javax.management.MBeanServer;
@@ -497,16 +498,26 @@
 
             // Set the payload from the JBR invocation...
             payloadProxy.setPayload(message, invocationRequest.getParameter());
+            logger.info("Payload : " + invocationRequest.getParameter());
 
             // Copy the request properties onto the message...
             Map properties = invocationRequest.getRequestPayload();
             
             
             if (properties != null) {
-                //	Extract any security information that exists
+                //	Extract any http security information that may exist
                 AuthenticationRequest authRequest = new JbrHttpSecurityInfoExtractor().extractSecurityInfo(properties);
-                message.getProperties().setProperty(SecurityService.AUTH_REQUEST, authRequest);
                 
+                // Extract any ws security information that may exist
+                if ( authRequest == null ) {
+                	authRequest = new WSSecurityInfoExtractor().extractSecurityInfo((String) invocationRequest.getParameter());
+                }
+                
+                if ( authRequest != null ) {
+                    message.getProperties().setProperty(SecurityService.AUTH_REQUEST, authRequest);
+                }
+                
+                
                 // Purposely not iterating over the Map.Entry Set because there's
                 // a bug in the Map impl used by JBossRemoting.  Not all the
                 // "values" are actually in the Map.Entry set.  Some of them are handled

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-12 13:31:39 UTC (rev 21470)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-12 14:37:22 UTC (rev 21471)
@@ -43,14 +43,15 @@
  */
 public class WSSecurityInfoExtractor implements SecurityInfoExtractor<String>
 {
+	private static final String SMOOK_CONFIG_FILE = "smooks-ws-security.xml";
 	private Smooks smooks;
 	
-	public WSSecurityInfoExtractor() throws IOException, SAXException
+	public WSSecurityInfoExtractor()
 	{
-		createSmooks("smooks-config.xml");
+		createSmooks( SMOOK_CONFIG_FILE );
 	}
 
-	public WSSecurityInfoExtractor(final String configFile) throws IOException, SAXException
+	public WSSecurityInfoExtractor(final String configFile)
 	{
 		createSmooks(configFile);
 	}
@@ -77,9 +78,20 @@
 		return new AuthenticationRequestImpl.Builder(user, credentials ).bulid();
 	}
 
-	private void createSmooks(final String configFile) throws IOException, SAXException
+	private void createSmooks(final String configFile) 
 	{
-		this.smooks = new Smooks( ClassUtil.getResourceAsStream(configFile, getClass()));
+		try
+		{
+    		this.smooks = new Smooks( ClassUtil.getResourceAsStream(configFile, getClass()));
+		} 
+		catch (final SAXException e)
+		{
+			throw new IllegalStateException("Could not parse " + configFile, e);
+		} 
+		catch (final IOException e)
+		{
+			throw new IllegalStateException("Could not parse " + configFile, e);
+		}
 	}
 	
 }

Deleted: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml	2008-08-12 13:31:39 UTC (rev 21470)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-config.xml	2008-08-12 14:37:22 UTC (rev 21471)
@@ -1,25 +0,0 @@
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
-
-    <resource-config selector="Envelope/Header/Security/UsernameToken">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">userNameToken</param>
-        <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
-        <param name="bindings">
-            <binding property="userName" selector="Username" default="" />
-            <binding property="password" selector="Password" />
-        </param>
-    </resource-config>
-    
-    <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">binarySecurityToken</param>
-        <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
-        <param name="bindings">
-            <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
-            <binding property="valueType" selector="BinarySecurityToken @ValueType" />
-            <binding property="key" selector="BinarySecurityToken" />
-        </param>
-    </resource-config>
-
-</smooks-resource-list>

Added: labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml	                        (rev 0)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml	2008-08-12 14:37:22 UTC (rev 21471)
@@ -0,0 +1,25 @@
+<?xml version="1.0"?>
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+
+    <resource-config selector="Envelope/Header/Security/UsernameToken">
+        <resource>org.milyn.javabean.BeanPopulator</resource>
+        <param name="beanId">userNameToken</param>
+        <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.UsernameToken</param>
+        <param name="bindings">
+            <binding property="userName" selector="Username" default="" />
+            <binding property="password" selector="Password" />
+        </param>
+    </resource-config>
+    
+    <resource-config selector="Envelope/Header/Security/BinarySecurityToken">
+        <resource>org.milyn.javabean.BeanPopulator</resource>
+        <param name="beanId">binarySecurityToken</param>
+        <param name="beanClass">org.jboss.soa.esb.services.security.auth.ws.BinarySecurityToken</param>
+        <param name="bindings">
+            <binding property="encodingType" selector="BinarySecurityToken @EncodingType" />
+            <binding property="valueType" selector="BinarySecurityToken @ValueType" />
+            <binding property="key" selector="BinarySecurityToken" />
+        </param>
+    </resource-config>
+
+</smooks-resource-list>

Modified: labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java	2008-08-12 13:31:39 UTC (rev 21470)
+++ labs/jbossesb/workspace/dbevenius/security/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java	2008-08-12 14:37:22 UTC (rev 21471)
@@ -47,7 +47,7 @@
 	@Test
 	public void extractUserPassSecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
 	{
-		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor();
+		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
 		String soap = createUserPassSoapString();
 		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
 		assertNotNull(authRequest);
@@ -57,7 +57,7 @@
 	@Test
 	public void extractKeySecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
 	{
-		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor();
+		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
 		String soap = createKeySoapString();
 		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
 		assertNotNull(authRequest);




More information about the jboss-svn-commits mailing list