You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/02/25 21:43:52 UTC

svn commit: r747914 - in /cxf/sandbox/interopfest: wssc/src/main/java/interop/client/ wssc/src/main/java/interop/server/ wssc/src/main/resources/etc/ wssec10/src/main/java/interop/client/ wssec10/src/main/resources/etc/

Author: dkulp
Date: Wed Feb 25 20:43:52 2009
New Revision: 747914

URL: http://svn.apache.org/viewvc?rev=747914&view=rev
Log:
[CXF-2068] Patch from Eamonn Dwyer applied to enable more WS-SC tests

Modified:
    cxf/sandbox/interopfest/wssc/src/main/java/interop/client/Client.java
    cxf/sandbox/interopfest/wssc/src/main/java/interop/client/KeystorePasswordCallback.java
    cxf/sandbox/interopfest/wssc/src/main/java/interop/server/PingServiceImpl.java
    cxf/sandbox/interopfest/wssc/src/main/java/interop/server/Server.java
    cxf/sandbox/interopfest/wssc/src/main/resources/etc/client.xml
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java
    cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml

Modified: cxf/sandbox/interopfest/wssc/src/main/java/interop/client/Client.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssc/src/main/java/interop/client/Client.java?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssc/src/main/java/interop/client/Client.java (original)
+++ cxf/sandbox/interopfest/wssc/src/main/java/interop/client/Client.java Wed Feb 25 20:43:52 2009
@@ -53,34 +53,40 @@
      */
     public static void main(String argv[])
         throws Exception {
-        
-        if (argv.length < 1 || "".equals(argv[0]) || argv[0] == null) {
+    	
+    	boolean useLocalWCFServices = false;
+
+    	if (argv.length < 1 || "".equals(argv[0]) || argv[0] == null) {
             argv = new String[] {
                 //"SecureConversation_UserNameOverTransport_IPingService",  //cannot sign/endorse in transport binding yet
                 "SecureConversation_MutualCertificate10SignEncrypt_IPingService",
                 "AC_IPingService",
                 "ADC_IPingService",
-                "ADC-ES_IPingService",  
+                "ADC-ES_IPingService",   
                 "_A_IPingService",
                 "_AD_IPingService",
                 "_AD-ES_IPingService",
                 
-                //"XC_IPingService",
-                //"XDC_IPingService",
-                //"XDC_IPingService1",
-                //"XDC-ES_IPingService",
-                //"XDC-SEES_IPingService",
-                //"_X_IPingService",
-                //"_X10_IPingService",
-                //"_XD_IPingService",
-                //"_XD-SEES_IPingService",
-                //"_XD-ES_IPingService",
-                "UXC_IPingService",
+                "UXC_IPingService", 
                 "UXDC_IPingService",
                 "UXDC-SEES_IPingService",
                 "_UX_IPingService",
                 "_UXD_IPingService",
                 "_UXD-SEES_IPingService",
+                
+                
+                "XC_IPingService", 
+                "XDC_IPingService", 
+                "XDC_IPingService1", 
+                "XDC-ES_IPingService", 
+                "XDC-SEES_IPingService", 
+                "_X_IPingService", 
+                "_X10_IPingService", 
+                "_XD_IPingService", 
+                "_XD-SEES_IPingService", 
+                "_XD-ES_IPingService",
+                
+
                 //"KC_IPingService",     //Kerberos token - not sure where the token comes from or how this works
                 //"KDC_IPingService",     //Kerberos token - not sure where the token comes from or how this works
                 //"KC10_IPingService",     //Kerberos token - not sure where the token comes from or how this works
@@ -93,7 +99,7 @@
             };
         }
         //argv = new String[] {argv[1]};
-        //argv = new String[] {"UXC_IPingService"};
+        //argv = new String[] {"_X10_IPingService"};
         
         new SpringBusFactory().createBus("etc/client.xml");
         List<String> results = new ArrayList<String>(argv.length);
@@ -103,10 +109,20 @@
             try {
                 PingService svc;
                 //wsdlLocation = new URL("http://localhost:9001/" + portPrefix + "?wsdl");
-                if (wsdlLocation == null) {
-                    svc = new PingService();
-                } else {
+                boolean isLocal = false;
+                try {
+                    if (wsdlLocation != null) {
+                        wsdlLocation.getContent();
+                        isLocal = true;     
+                    }
+                } catch (Exception e) {
+                    isLocal = false;
+                }
+                
+                if (isLocal) {
                     svc = new PingService(wsdlLocation);
+                } else {
+                    svc = new PingService();
                 }
                 final IPingService port = 
                     svc.getPort(
@@ -117,6 +133,10 @@
                         IPingService.class
                     );
                
+                if (useLocalWCFServices) {
+                    ((BindingProvider)port).getRequestContext()
+                        .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, getEndpointName(portPrefix));
+                }
                 PingRequest params = new PingRequest();
                 Ping ping = new Ping();
                 ping.setOrigin("CXF");
@@ -124,19 +144,23 @@
                 ping.setText("ping");
                 params.setPing(ping);
                 PingResponse output = port.ping(params);
-                if (!output.getPingResponse().getText().equals(output.getPingResponse().getText())) {
+                if (!OUT.equals(output.getPingResponse().getText())) {
                     System.err.println(
                         "Expected " + OUT + " but got " + output.getPingResponse().getText()
                     );
                     results.add("Unexpected output " + output.getPingResponse().getText());
                 } else {
-                    System.out.println("OK!");
+                    System.out.println(portPrefix + ": OK!");
                     results.add("OK!");
                 }
             } catch (Throwable t) {
                 t.printStackTrace();
                 results.add("Exception: " + t);
             }
+            //blasting the MS endpoints tends to cause a hang
+            //pause a sec to allow it to recover
+            Thread.sleep(1000);
+            System.gc();
         }
         for (int x = 0; x < argv.length; x++) {
             System.out.println(argv[x] + ": " + results.get(x));
@@ -144,4 +168,12 @@
     }
 
 
+    private static String getEndpointName(String testName) {
+    	if ("SecureConversation_UserNameOverTransport_IPingService".equals(testName)) {
+    		return "https://localhost/Security_WsSecurity_Service_Indigo/WSSecureConversation.svc/SecureConversation_UserNameOverTransport";
+    	}
+	    return "http://localhost/Security_WsSecurity_Service_Indigo/WSSecureConversation.svc/" 
+	       + testName.substring(0, testName.indexOf("_IPingService"));
+    }    
 }
+

Modified: cxf/sandbox/interopfest/wssc/src/main/java/interop/client/KeystorePasswordCallback.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssc/src/main/java/interop/client/KeystorePasswordCallback.java?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssc/src/main/java/interop/client/KeystorePasswordCallback.java (original)
+++ cxf/sandbox/interopfest/wssc/src/main/java/interop/client/KeystorePasswordCallback.java Wed Feb 25 20:43:52 2009
@@ -27,6 +27,7 @@
         passwords.put("Bob", "abcd!1234");
         passwords.put("bob", "abcd!1234");
         passwords.put("abcd", "dcba");
+        passwords.put("6e0e88f36ebb8744d470f62f604d03ea4ebe5094", "password");
     }
 
     /**
@@ -36,6 +37,19 @@
     public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
         for (int i = 0; i < callbacks.length; i++) {
             WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+            try {
+            	Integer.parseInt(pc.getIdentifier());
+            	//Its an alias generated for a pfx file,
+            	//this seems to be the way sun seem to load
+            	//.pfc files into keystores, assigning an int value
+            	//as the key aliases,
+            	//The above is an issue when doing encrypt or signing only.
+            	//Perhaps using a more suitable keystore format like .jks would be better
+            	pc.setPassword("password");
+                return;
+            } catch (NumberFormatException nfe) {
+            	//not a pfx alias, carry on to next
+            }
 
             String pass = passwords.get(pc.getIdentifier());
             if (pass != null) {

Modified: cxf/sandbox/interopfest/wssc/src/main/java/interop/server/PingServiceImpl.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssc/src/main/java/interop/server/PingServiceImpl.java?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssc/src/main/java/interop/server/PingServiceImpl.java (original)
+++ cxf/sandbox/interopfest/wssc/src/main/java/interop/server/PingServiceImpl.java Wed Feb 25 20:43:52 2009
@@ -64,7 +64,7 @@
         PingResponseBody body = new PingResponseBody();
         body.setOrigin("CXF");
         body.setScenario(parameters.getPing().getScenario());
-        body.setText(parameters.getPing().getOrigin() + ": "
+        body.setText(parameters.getPing().getOrigin() + " : "
                      + parameters.getPing().getText());
         resp.setPingResponse(body);
         return resp;

Modified: cxf/sandbox/interopfest/wssc/src/main/java/interop/server/Server.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssc/src/main/java/interop/server/Server.java?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssc/src/main/java/interop/server/Server.java (original)
+++ cxf/sandbox/interopfest/wssc/src/main/java/interop/server/Server.java Wed Feb 25 20:43:52 2009
@@ -79,6 +79,11 @@
         Endpoint ep = Endpoint.create(obj);
         ep.getProperties().put(SecurityConstants.CALLBACK_HANDLER + ".sct", new KeystorePasswordCallback());
         ep.getProperties().put(SecurityConstants.ENCRYPT_PROPERTIES + ".sct", "etc/bob.properties");
+        
+        if (url.contains("X10_I")) {
+            ep.getProperties().put(SecurityConstants.SIGNATURE_PROPERTIES + ".sct", "etc/bob.properties");
+            ep.getProperties().put(SecurityConstants.ENCRYPT_PROPERTIES + ".sct", "etc/alice.properties");
+        }
         ep.publish(url);
     }
     

Modified: cxf/sandbox/interopfest/wssc/src/main/resources/etc/client.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssc/src/main/resources/etc/client.xml?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssc/src/main/resources/etc/client.xml (original)
+++ cxf/sandbox/interopfest/wssc/src/main/resources/etc/client.xml Wed Feb 25 20:43:52 2009
@@ -82,10 +82,82 @@
         <jaxws:properties>
             <entry key="ws-security.username.sct" value="abcd"/>
             <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
-            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/>
         </jaxws:properties>
     </jaxws:client>
     
+    <jaxws:client name="{http://InteropBaseAddress/interop}XDC_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client> 
+    
+    <jaxws:client name="{http://InteropBaseAddress/interop}XDC_IPingService1" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>        
+    
+    <jaxws:client name="{http://InteropBaseAddress/interop}XDC-ES_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>  
+    
+    <jaxws:client name="{http://InteropBaseAddress/interop}XDC-SEES_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>   
+
+    <jaxws:client name="{http://InteropBaseAddress/interop}_X_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>   
+
+    <jaxws:client name="{http://InteropBaseAddress/interop}_X10_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.signature.properties.sct" value="etc/alice.properties"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>   
+
+    <jaxws:client name="{http://InteropBaseAddress/interop}_XD_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client> 
+    
+    <jaxws:client name="{http://InteropBaseAddress/interop}_XD-SEES_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>       
+
+    <jaxws:client name="{http://InteropBaseAddress/interop}_XD-ES_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username.sct" value="abcd"/>
+            <entry key="ws-security.callback-handler.sct" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.encryption.properties.sct" value="etc/bob.properties"/> 
+        </jaxws:properties>
+    </jaxws:client>     
     
     <jaxws:client name="{http://InteropBaseAddress/interop}UXC_IPingService" createdFromAPI="true">
         <jaxws:properties>

Modified: cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java Wed Feb 25 20:43:52 2009
@@ -52,6 +52,7 @@
         if (argv.length < 1) {
            argv = new String[] {
                                 "UserNameOverTransport",
+                                "MutualCertificate10SignEncrypt",
                                 "MutualCertificate10SignEncryptRsa15TripleDes"
                                 };
         }

Modified: cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml?rev=747914&r1=747913&r2=747914&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml Wed Feb 25 20:43:52 2009
@@ -63,6 +63,28 @@
         </http:tlsClientParameters>
     </http:conduit>
     
+    
+    <!-- -->
+    <!-- Scenario 3.3 -->
+    <!-- -->
+    <jaxws:client name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncrypt_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username" value="Alice"/>
+            <entry key="ws-security.callback-handler" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.signature.properties" value="etc/alice.properties"/>
+            <entry key="ws-security.encryption.properties" value="etc/bob.properties"/>
+        </jaxws:properties>
+    </jaxws:client>
+    <!-- for call to local endpoint -->
+    <jaxws:client name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncrypt_IPingService" createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="ws-security.username" value="Alice"/>
+            <entry key="ws-security.callback-handler" value="interop.client.KeystorePasswordCallback"/>
+            <entry key="ws-security.signature.properties" value="etc/alice.properties"/>
+            <entry key="ws-security.encryption.properties" value="etc/bob.properties"/>
+        </jaxws:properties>
+    </jaxws:client>
+    
     <!-- -->
     <!-- Scenario 3.4 -->
     <!-- -->