You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2012/04/17 09:11:51 UTC

svn commit: r1326956 - /cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java

Author: ffang
Date: Tue Apr 17 07:11:51 2012
New Revision: 1326956

URL: http://svn.apache.org/viewvc?rev=1326956&view=rev
Log:
[CXF-4126]add testcase to demonstrate add new custom action on WSS4JOutInterceptor also works

Modified:
    cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java

Modified: cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java?rev=1326956&r1=1326955&r2=1326956&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java (original)
+++ cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java Tue Apr 17 07:11:51 2012
@@ -179,7 +179,7 @@ public class WSS4JOutInterceptorTest ext
     }
     
     @Test
-    public void testCustomAction() throws Exception {
+    public void testOverrideCustomAction() throws Exception {
         SOAPMessage saaj = readSAAJDocument("wsse-request-clean.xml");
 
         WSS4JOutInterceptor ohandler = new WSS4JOutInterceptor();
@@ -226,6 +226,41 @@ public class WSS4JOutInterceptorTest ext
         }
     }
     
+    
+    @Test
+    public void testAddCustomAction() throws Exception {
+        SOAPMessage saaj = readSAAJDocument("wsse-request-clean.xml");
+
+        WSS4JOutInterceptor ohandler = new WSS4JOutInterceptor();
+        PhaseInterceptor<SoapMessage> handler = ohandler.createEndingInterceptor();
+
+        SoapMessage msg = new SoapMessage(new MessageImpl());
+        Exchange ex = new ExchangeImpl();
+        ex.setInMessage(msg);
+
+        msg.setContent(SOAPMessage.class, saaj);
+        
+        CountingUsernameTokenAction action = new CountingUsernameTokenAction();
+        Map<Object, Object> customActions = new HashMap<Object, Object>(1);
+        customActions.put(12345, action);
+                
+        msg.put(WSHandlerConstants.ACTION, "12345");
+        msg.put(WSHandlerConstants.SIG_PROP_FILE, "outsecurity.properties");
+        msg.put(WSHandlerConstants.USER, "username");
+        msg.put("password", "myAliasPassword");
+        msg.put(WSHandlerConstants.PASSWORD_TYPE, WSConstants.PW_TEXT);
+        msg.put(WSS4JOutInterceptor.WSS4J_ACTION_MAP, customActions);
+        handler.handleMessage(msg);
+
+        SOAPPart doc = saaj.getSOAPPart();
+        assertValid("//wsse:Security", doc);
+        assertValid("//wsse:Security/wsse:UsernameToken", doc);
+        assertValid("//wsse:Security/wsse:UsernameToken/wsse:Username[text()='username']", doc);
+        // Test to see that the plaintext password is used in the header
+        assertValid("//wsse:Security/wsse:UsernameToken/wsse:Password[text()='myAliasPassword']", doc);
+        assertEquals(1, action.getExecutions());
+    }
+    
     private static class CountingUsernameTokenAction extends UsernameTokenAction {
 
         private int executions;
@@ -235,6 +270,7 @@ public class WSS4JOutInterceptorTest ext
                 RequestData reqData) throws WSSecurityException {
             
             this.executions++;
+            reqData.setPwType(WSConstants.PW_TEXT);
             super.execute(handler, actionToDo, doc, reqData);
         }