[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