[jboss-svn-commits] JBL Code SVN: r21909 - in labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta: src/org/jboss/soa/esb/services/security/auth/ws and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 26 07:42:57 EDT 2008


Author: beve
Date: 2008-08-26 07:42:57 -0400 (Tue, 26 Aug 2008)
New Revision: 21909

Added:
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml
Modified:
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java
   labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
Log:
Work for JBESB-1954,JBESB-1957, and JBESB-1954


Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java	2008-08-26 11:37:21 UTC (rev 21908)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/internal/soa/esb/services/security/UserPassCallbackHandler.java	2008-08-26 11:42:57 UTC (rev 21909)
@@ -45,7 +45,7 @@
 	public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException
 	{
 		if ( authRequest == null )
-			throw new IllegalStateException("No AuthenticationRequest be been set");
+			throw new IllegalStateException("No AuthenticationRequest has been set");
 		
 		log.debug("Nr of callback to handle : " + callbacks.length);
 		for (int i = 0; i < callbacks.length; i++) 

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java	2008-08-26 11:37:21 UTC (rev 21908)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityToken.java	2008-08-26 11:42:57 UTC (rev 21909)
@@ -49,7 +49,7 @@
 	
 	public void setEncodingType(String encodingType)
 	{
-		this.encodingType = stripNSAlias(encodingType);
+		this.encodingType = stripNS(encodingType);
 	}
 	
 	public String getValueType()
@@ -59,7 +59,7 @@
 	
 	public void setValueType(String valueType)
 	{
-		this.valueType = stripNSAlias(valueType);
+		this.valueType = stripNS(valueType);
 	}
 	
 	public Certificate getKey()
@@ -103,13 +103,22 @@
 		return valueType;
 	}
 
-	private String stripNSAlias(String value)
+	private String stripNS(String value)
 	{
 		if ( value != null )
 		{
-			final int idx = value.indexOf(':');
-			if ( idx > 0 )
-				value = value.substring( idx + 1 );
+			if ( value.startsWith("http"))
+			{
+				final int idx = value.indexOf('#');
+    			if ( idx > 0 )
+    				value = value.substring( idx + 1 );
+			}
+			else
+			{
+    			final int idx = value.indexOf(':');
+    			if ( idx > 0 )
+    				value = value.substring( idx + 1 );
+			}
 		}
 		return value;
 	}

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-26 11:37:21 UTC (rev 21908)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractor.java	2008-08-26 11:42:57 UTC (rev 21909)
@@ -88,6 +88,11 @@
 	 */
 	public AuthenticationRequest extractSecurityInfo(final String soap)
 	{
+		if ( soap == null || !soap.startsWith("<") )
+		{
+			return null;
+		}
+		
 		final JavaResult javaResult = new JavaResult();
 		smooks.filter(new StreamSource(new StringReader(soap)), javaResult);
 		

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java	2008-08-26 11:37:21 UTC (rev 21908)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/BinarySecurityTokenTest.java	2008-08-26 11:42:57 UTC (rev 21909)
@@ -69,6 +69,22 @@
 	}
 	
 	@Test
+	public void setEncodingTypeFullPath()
+	{
+		String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary";
+		token.setEncodingType(url);
+		assertEquals( expectedEncoding, token.getEncodingType() );
+	}
+	
+	@Test
+	public void setValueType()
+	{
+		String url = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3";
+		token.setValueType(url);
+		assertEquals( expectedValueType, token.getValueType() );
+	}
+	
+	@Test
 	public void setEncodingType()
 	{
 		token.setEncodingType(expectedEncoding);

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java	2008-08-26 11:37:21 UTC (rev 21908)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/WSSecurityInfoExtractorUnitTest.java	2008-08-26 11:42:57 UTC (rev 21909)
@@ -22,11 +22,16 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+
 import java.io.IOException;
 import java.io.InputStream;
+
 import javax.xml.parsers.ParserConfigurationException;
+
 import junit.framework.JUnit4TestAdapter;
+
 import org.jboss.internal.soa.esb.util.StreamUtils;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
@@ -58,7 +63,7 @@
 	public void extractKeySecurityInfo() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
 	{
 		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
-		String soap = createKeySoapString();
+		String soap = createKeySoapString("soap-keys-example.xml");
 		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
 		assertNotNull(authRequest);
 		assertTrue( authRequest.getCredentials().size() > 0 );
@@ -66,14 +71,44 @@
 		assertTrue( cert instanceof java.security.cert.X509Certificate);
 	}
 	
+	@Test
+	public void extractKeySecurityInfo2() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+	{
+		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
+		String soap = createKeySoapString("soap-keys-example2.xml");
+		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+		assertNotNull(authRequest);
+		assertTrue( authRequest.getCredentials().size() > 0 );
+		Object cert = authRequest.getCredentials().iterator().next();
+		assertTrue( cert instanceof java.security.cert.X509Certificate);
+	}
+	
+	@Test
+	public void extractKeySecurityInfoUsingStringInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+	{
+		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
+		String soap = "some payload";
+		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+		assertNull(authRequest);
+	}
+	
+	@Test
+	public void extractKeySecurityInfoUsingNullInput() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+	{
+		WSSecurityInfoExtractor extractor = new WSSecurityInfoExtractor("smooks-config.xml");
+		String soap = null;
+		AuthenticationRequest authRequest = extractor.extractSecurityInfo(soap);
+		assertNull(authRequest);
+	}
+	
 	private String createUserPassSoapString() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
 	{
 		return getStringFromFile("soap-userpass-example.xml");
 	}
 	
-	private String createKeySoapString() throws SAXException, IOException, ParserConfigurationException, ConfigurationException
+	private String createKeySoapString(final String filename) throws SAXException, IOException, ParserConfigurationException, ConfigurationException
 	{
-		return getStringFromFile("soap-keys-example.xml");
+		return getStringFromFile(filename);
 	}
 	
 	private String getStringFromFile(final String fileName ) throws SAXException, IOException, ParserConfigurationException, ConfigurationException

Added: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml	                        (rev 0)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/ws/soap-keys-example2.xml	2008-08-26 11:42:57 UTC (rev 21909)
@@ -0,0 +1,19 @@
+<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
+	<env:Header>
+		<wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
+			<wsse:BinarySecurityToken EncodingType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary' ValueType='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3'>MIICQjCCAasCBEif0tUwDQYJKoZIhvcNAQEEBQAwaDELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
+b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
+Qm9zczEPMA0GA1UEAxMGRGFuaWVsMB4XDTA4MDgxMTA1NDkwOVoXDTA4MTEwOTA1NDkwOVowaDEL
+MAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYD
+VQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEPMA0GA1UEAxMGRGFuaWVsMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQCdSh96Xyt4LeZbXz9pk4eaHrj2sGFmI9lkLQiW/DbF9ETXFvWYCS4N
+lsONmPx63KSbzJZQZRlJSAW2y6hQO18G9NMFQpn2W/jtPSw61kH3dXDQ+kZ2UMk9K93nt4XLvGm6
+dMQAGZAjzpz4lzhcYrDJI4NMw5LpeljDawkradtuiwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAHi2
+S1zC8jIqncSeMRwOvPOEQIcsZJELYFUCiTwPrAg5hNkp/oewm6uCkgqmry09+3+ZXg2KLQ+RgeuV
+8yfeBvk7TFjtOWeHWnBOaxKiAyLibxGchVfMPl847MZ2w4d6vu776cqb1NKghAE53dn9AzUHIWwx
+OizXyDaDiBMj5xgs
+</wsse:BinarySecurityToken>
+		</wsse:Security>
+	</env:Header>
+	<env:Body></env:Body>
+</env:Envelope>
\ No newline at end of file




More information about the jboss-svn-commits mailing list