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/03/06 18:43:17 UTC

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

Author: dkulp
Date: Fri Mar  6 17:43:17 2009
New Revision: 751000

URL: http://svn.apache.org/viewvc?rev=751000&view=rev
Log:
[CXF-2090] Patch from Eamonn Dwyer applied to get full roundtrips for wssec10 

Added:
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java   (with props)
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java   (with props)
Modified:
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/Client.java
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/UTPasswordCallback.java
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncryptRsa15TripleDes.java
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/Server.java
    cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/UserNameOverTransport.java
    cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml
    cxf/sandbox/interopfest/wssec10/src/main/resources/etc/server.xml

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=751000&r1=750999&r2=751000&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 Fri Mar  6 17:43:17 2009
@@ -23,6 +23,8 @@
 
 package interop.client;
 
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -31,8 +33,8 @@
 
 import org.apache.cxf.bus.spring.SpringBusFactory;
 
-import interopbaseaddress.interop.PingService10;
 import interopbaseaddress.interop.IPingService;
+import interopbaseaddress.interop.PingService10;
 
 public final class Client {
     
@@ -60,9 +62,17 @@
         new SpringBusFactory().createBus("etc/client.xml");
         
         List<String> results = new ArrayList<String>();
+        URL wsdlLocation = null;
         for (String portPrefix : argv) {
             try {
-                final PingService10 svc = new PingService10();
+                PingService10 svc = null; 
+                boolean isLocal = false;
+                if (isLocal) {
+                    wsdlLocation = getWsdlLocation(portPrefix); 
+                    svc = new PingService10(wsdlLocation);
+                } else {
+                    svc = new PingService10();
+                }
                 final IPingService port = 
                     svc.getPort(
                         new QName(
@@ -91,11 +101,27 @@
                 }
             } catch (Throwable t) {
                 results.add("Exception: " + t);
+                t.printStackTrace();
             }
         }
         for (int x = 0; x < argv.length; x++) {
             System.out.println(argv[x] + ": " + results.get(x));
         }
     }
+    
+    private static URL getWsdlLocation(String portPrefix) {
+    	try {
+    	    if ("UserNameOverTransport".equals(portPrefix)) {
+    	        return new URL("https://localhost:9001/" + portPrefix + "?wsdl");
+    	    } else if ("MutualCertificate10SignEncrypt".equals(portPrefix)) {
+    	        return new URL("http://localhost:9002/" + portPrefix + "?wsdl");
+    	    } else if ("MutualCertificate10SignEncryptRsa15TripleDes".equals(portPrefix)) {
+    	        return new URL("http://localhost:9000/" + portPrefix + "?wsdl");
+    	    }
+    	} catch (MalformedURLException mue) {
+    	    return null;
+    	}
+    	return null;
+    }
 
 }

Modified: cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/UTPasswordCallback.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/UTPasswordCallback.java?rev=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/UTPasswordCallback.java (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/client/UTPasswordCallback.java Fri Mar  6 17:43:17 2009
@@ -26,6 +26,8 @@
     public UTPasswordCallback() {
         passwords.put("Alice", "ecilA");
         passwords.put("Frank", "invalid-password");
+        //for MS clients
+        passwords.put("abcd", "dcba");
     }
 
     /**

Added: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java?rev=751000&view=auto
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java (added)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java Fri Mar  6 17:43:17 2009
@@ -0,0 +1,63 @@
+/**
+ *        Copyright (c) 1993-2006 IONA Technologies PLC.
+ *                       All Rights Reserved.
+ */
+package interop.server;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+/**
+ */
+
+public class KeystorePasswordCallback implements CallbackHandler {
+    private Map<String, String> passwords = 
+        new HashMap<String, String>();
+    
+    public KeystorePasswordCallback() {
+        passwords.put("Alice", "abcd!1234");
+        passwords.put("alice", "abcd!1234");
+        passwords.put("Bob", "abcd!1234");
+        passwords.put("bob", "abcd!1234");
+        passwords.put("abcd", "dcba");
+        passwords.put("6e0e88f36ebb8744d470f62f604d03ea4ebe5094", "password");
+    }
+
+    /**
+     * It attempts to get the password from the private 
+     * alias/passwords map.
+     */
+    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) {
+                pc.setPassword(pass);
+                return;
+            } else {
+                pc.setPassword("password");
+            }
+        }
+    } 
+}

Propchange: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/KeystorePasswordCallback.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java?rev=751000&view=auto
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java (added)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java Fri Mar  6 17:43:17 2009
@@ -0,0 +1,16 @@
+/**
+ *        Copyright (c) 1993-2007 IONA Technologies PLC.
+ *                       All Rights Reserved.
+ */
+package interop.server;
+
+@javax.jws.WebService(
+    targetNamespace = "http://InteropBaseAddress/interop", 
+    serviceName = "PingService10", 
+    portName = "MutualCertificate10SignEncrypt_IPingService", 
+    endpointInterface = "interopbaseaddress.interop.IPingService",
+    wsdlLocation = "target/wsdl2/WsSecurity10.wsdl"
+)                  
+public class MutualCertificate10SignEncrypt extends PingServiceBase {
+    // complete
+}

Propchange: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncrypt.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncryptRsa15TripleDes.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncryptRsa15TripleDes.java?rev=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncryptRsa15TripleDes.java (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/MutualCertificate10SignEncryptRsa15TripleDes.java Fri Mar  6 17:43:17 2009
@@ -8,7 +8,8 @@
     targetNamespace = "http://InteropBaseAddress/interop", 
     serviceName = "PingService10", 
     portName = "MutualCertificate10SignEncryptRsa15TripleDes_IPingService", 
-    endpointInterface = "interopbaseaddress.interop.IPingService"
+    endpointInterface = "interopbaseaddress.interop.IPingService",
+    wsdlLocation = "target/wsdl2/WsSecurity10.wsdl"
 )                  
 public class MutualCertificate10SignEncryptRsa15TripleDes extends PingServiceBase {
     // complete

Modified: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/Server.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/Server.java?rev=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/Server.java (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/Server.java Fri Mar  6 17:43:17 2009
@@ -30,22 +30,7 @@
 public class Server {
 
     protected Server() throws Exception {
-        new SpringBusFactory().createBus("server.xml");
-
-        //
-        // Scenario 3.1
-        //
-        Endpoint.publish(
-            "https://localhost:9001/UserNameOverTransport", 
-            new UserNameOverTransport()
-        );
-        //
-        // Scenario 3.4
-        //
-        Endpoint.publish(
-            "http://localhost:9000/MutualCertificate10SignEncryptRsa15TripleDes", 
-            new MutualCertificate10SignEncryptRsa15TripleDes()
-        );
+        new SpringBusFactory().createBus("etc/server.xml");
     }
 
     public static void main(String args[]) throws Exception {
@@ -57,3 +42,4 @@
         System.exit(0);
     }
 }
+

Modified: cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/UserNameOverTransport.java
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/UserNameOverTransport.java?rev=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/UserNameOverTransport.java (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/java/interop/server/UserNameOverTransport.java Fri Mar  6 17:43:17 2009
@@ -8,8 +8,10 @@
     targetNamespace = "http://InteropBaseAddress/interop", 
     serviceName = "PingService10", 
     portName = "UserNameOverTransportLocal_IPingService", 
-    endpointInterface = "interopbaseaddress.interop.IPingService"
+    endpointInterface = "interopbaseaddress.interop.IPingService",
+    wsdlLocation = "target/wsdl2/WsSecurity10.wsdl"
 )                  
 public class UserNameOverTransport extends PingServiceBase {
     // complete
 }
+ 
\ No newline at end of file

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=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/resources/etc/client.xml Fri Mar  6 17:43:17 2009
@@ -24,6 +24,8 @@
             <cxf:logging/>
         </cxf:features>
     </cxf:bus>
+    
+    
     <!-- -->
     <!-- Scenario 3.1 -->
     <!-- -->
@@ -33,14 +35,7 @@
             <entry key="ws-security.callback-handler" value="interop.client.UTPasswordCallback"/>
         </jaxws:properties>
     </jaxws:client>
-    <!-- for call to local endpoint -->
-    <jaxws:client name="{http://InteropBaseAddress/interop}UserNameOverTransportLocal_IPingService" createdFromAPI="true">
-        <jaxws:properties>
-            <entry key="ws-security.username" value="Alice"/>
-            <entry key="ws-security.callback-handler" value="interop.client.UTPasswordCallback"/>
-        </jaxws:properties>
-    </jaxws:client>
-    <http:conduit name="https://131.107.72.15/Security_WsSecurity_Service_Indigo/WsSecurity10.svc/UserNameOverTransport.*">
+    <http:conduit name="https://.*/UserNameOverTransport.*">
         <http:tlsClientParameters disableCNCheck="true">
             <sec:keyManagers keyPassword="password">
                 <sec:keyStore type="pkcs12" password="password" resource="certs/alice.pfx"/>
@@ -49,20 +44,7 @@
                 <sec:keyStore type="pkcs12" password="password" resource="certs/bob.pfx"/>
             </sec:trustManagers>
         </http:tlsClientParameters>
-    </http:conduit>
-    <!-- for call to local endpoint -->
-    <http:conduit name="{http://InteropBaseAddress/interop}UserNameOverTransportLocal_IPingService.http-conduit">
-        <http:tlsClientParameters>
-            <sec:keyManagers keyPassword="password">
-                <sec:keyStore type="pkcs12" password="password" resource="certs/alice.pfx"/>
-            </sec:keyManagers>
-            <sec:trustManagers>
-                <sec:keyStore type="pkcs12" password="password" resource="certs/alice.pfx"/>
-                <!--sec:keyStore type="jks" resource="certs/certs.jks"/-->
-            </sec:trustManagers>
-        </http:tlsClientParameters>
-    </http:conduit>
-    
+    </http:conduit>    
     
     <!-- -->
     <!-- Scenario 3.3 -->
@@ -75,15 +57,7 @@
             <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 -->
@@ -96,14 +70,5 @@
             <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}MutualCertificate10SignEncryptRsa15TripleDesLocal_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>
 
 </beans>

Modified: cxf/sandbox/interopfest/wssec10/src/main/resources/etc/server.xml
URL: http://svn.apache.org/viewvc/cxf/sandbox/interopfest/wssec10/src/main/resources/etc/server.xml?rev=751000&r1=750999&r2=751000&view=diff
==============================================================================
--- cxf/sandbox/interopfest/wssec10/src/main/resources/etc/server.xml (original)
+++ cxf/sandbox/interopfest/wssec10/src/main/resources/etc/server.xml Fri Mar  6 17:43:17 2009
@@ -10,28 +10,41 @@
     xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
     xmlns:sec="http://cxf.apache.org/configuration/security"
     xmlns:security="http://schemas.iona.com/soa/security-config"
+    xmlns:interop="http://InteropBaseAddress/interop"
+    xmlns:cxf="http://cxf.apache.org/core"
+    xmlns:p="http://cxf.apache.org/policy"
     xsi:schemaLocation="
         http://www.springframework.org/schema/beans                     http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
         http://cxf.apache.org/jaxws                                     http://cxf.apache.org/schemas/jaxws.xsd
+        http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+        http://cxf.apache.org/policy http://cxf.apache.org/schemas/policy.xsd
         http://cxf.apache.org/transports/http/configuration             http://cxf.apache.org/schemas/configuration/http-conf.xsd
         http://cxf.apache.org/transports/http-jetty/configuration       http://cxf.apache.org/schemas/configuration/http-jetty.xsd
         http://cxf.apache.org/configuration/security                    http://cxf.apache.org/schemas/configuration/security.xsd
         http://schemas.iona.com/soa/security-config                     http://schemas.iona.com/soa/security-config.xsd
     ">
+    
+    <cxf:bus>
+        <cxf:features>
+            <p:policies/>
+            <cxf:logging/>
+        </cxf:features>
+    </cxf:bus>
 
     <!-- -->
     <!-- Any services listening on port 9001 must use the following -->
     <!-- Transport Layer Security (TLS) settings -->
     <!-- -->
-    <httpj:engine-factory bus="cxf">
+    <httpj:engine-factory id="tls-settings">
         <httpj:engine port="9001">
             <httpj:tlsServerParameters>
                 <sec:keyManagers keyPassword="password">
-                    <sec:keyStore type="pkcs12" password="password" file="keys/alice.pfx"/>
+                    <sec:keyStore type="pkcs12" password="password" resource="certs/bob.pfx"/>
                 </sec:keyManagers>
                 <sec:trustManagers>
-                    <sec:keyStore type="jks" password="password" file="keys/certs.jks"/>
-                </sec:trustManagers>
+                    <sec:keyStore type="pkcs12" password="password" resource="certs/alice.pfx"/>
+                </sec:trustManagers> 
+
                 <!--
                 <sec:cipherSuitesFilter>
                     <sec:include>.*_EXPORT_.*</sec:include>
@@ -45,60 +58,66 @@
             </httpj:tlsServerParameters>
         </httpj:engine>
     </httpj:engine-factory>
+    
+    <!-- -->
+    <!-- Scenario 3.1 -->
+    <!-- -->
+    <jaxws:endpoint 
+       id="UserNameOverTransport"
+       address="https://localhost:9001/UserNameOverTransport" 
+       serviceName="interop:PingService10"
+       endpointName="interop:UserNameOverTransport_IPingService"
+       implementor="interop.server.UserNameOverTransport"
+       depends-on="tls-settings">
+        
+       <jaxws:properties>
+            <entry key="ws-security.username" value="Alice"/>
+            <entry key="ws-security.callback-handler" value="interop.client.UTPasswordCallback"/>
+        </jaxws:properties> 
+     
+    </jaxws:endpoint> 
+    
+
+    <!-- -->
+    <!-- Scenario 3.3 -->
+    <!-- -->
+    <jaxws:endpoint 
+       name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncrypt_IPingService"
+       id="MutualCertificate10SignEncrypt"
+       address="http://localhost:9002/MutualCertificate10SignEncrypt" 
+       serviceName="interop:PingService10"
+       endpointName="interop:MutualCertificate10SignEncrypt_IPingService"
+       implementor="interop.server.MutualCertificate10SignEncrypt">
+        
+        <jaxws:properties>
+            <entry key="ws-security.username" value="Alice"/>
+            <entry key="ws-security.signature.properties" value="etc/bob.properties"/>
+            <entry key="ws-security.encryption.properties" value="etc/alice.properties"/>
+            <entry key="ws-security.callback-handler" value="interop.server.KeystorePasswordCallback"/>
+        </jaxws:properties> 
+
+    </jaxws:endpoint> 
+    
 
     <!-- -->
     <!-- Scenario 3.4 -->
     <!-- -->
-    <jaxws:endpoint name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncryptRsa15TripleDes_IPingService" createdFromAPI="true">
-        <jaxws:features>
-            <bean class="org.apache.cxf.feature.LoggingFeature"/>
-        </jaxws:features>
-        <jaxws:outInterceptors>
-            <bean class="org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor"/>
-            <ref bean="MutualCertificate10SignEncryptRsa153Des_Response"/>
-        </jaxws:outInterceptors>
-        <jaxws:inInterceptors>
-            <ref bean="MutualCertificate10SignEncryptRsa153Des_Request"/>
-            <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
-        </jaxws:inInterceptors>
-    </jaxws:endpoint>
-    <bean 
-        class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"
-        id="MutualCertificate10SignEncryptRsa153Des_Response">
-        <constructor-arg>
-            <map>
-                <entry key="action" value="Timestamp Signature Encrypt"/>
-                <entry key="user" value="Bob"/>
-                <entry key="signaturePropFile" value="bob.properties"/>
-                <entry key="encryptionPropFile" value="alice.properties"/>
-                <entry key="encryptionUser" value="Alice"/>
-                <entry key="signatureKeyIdentifier" value="DirectReference"/>
-                <entry key="passwordCallbackClass" value="demo.hw.client.KeystorePasswordCallback"/>
-                <entry key="signatureParts" value="{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp;{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
-                <!-- -->
-                <!-- Recommendation: signatures should be encrypted -->
-                <!-- -->
-                <entry key="encryptionParts" value="{Element}{http://www.w3.org/2000/09/xmldsig#}Signature;{Content}{http://schemas.xmlsoap.org/soap/envelope/}Body"/>
-                <!-- <entry key="encryptionKeyTransportAlgorithm" value="RSA15"/> -->
-                <entry key="encryptionSymAlgorithm" value="http://www.w3.org/2001/04/xmlenc#tripledes-cbc"/>
-            </map>
-        </constructor-arg>
-    </bean>
-    <bean 
-        class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"
-        id="MutualCertificate10SignEncryptRsa153Des_Request">
-        <constructor-arg>
-            <map>
-                <!-- Use this action order for local clients -->
-                <entry key="action" value="Timestamp Signature Encrypt"/>
-                <!-- Use this action spec for WCF clients 
-                <entry key="action" value="Signature Encrypt Timestamp"/>
-                -->
-                <entry key="signaturePropFile" value="alice.properties"/>
-                <entry key="decryptionPropFile" value="bob.properties"/>
-                <entry key="passwordCallbackClass" value="demo.hw.client.KeystorePasswordCallback"/>
-            </map>
-        </constructor-arg>
-    </bean>
+    <jaxws:endpoint 
+       name="{http://InteropBaseAddress/interop}MutualCertificate10SignEncryptRsa15TripleDes_IPingService"
+       id="MutualCertificate10SignEncryptRsa15TripleDes"
+       address="http://localhost:9000/MutualCertificate10SignEncryptRsa15TripleDes" 
+       serviceName="interop:PingService10"
+       endpointName="interop:MutualCertificate10SignEncryptRsa15TripleDes_IPingService"
+       implementor="interop.server.MutualCertificate10SignEncryptRsa15TripleDes">
+        
+        <jaxws:properties>
+            <entry key="ws-security.username" value="Alice"/>
+            <entry key="ws-security.signature.properties" value="etc/bob.properties"/>
+            <entry key="ws-security.encryption.properties" value="etc/alice.properties"/>
+            <entry key="ws-security.callback-handler" value="interop.server.KeystorePasswordCallback"/>
+        </jaxws:properties> 
+
+    </jaxws:endpoint> 
+
     
 </beans>