Author: ffang
Date: Tue Apr 17 07:17:21 2012
New Revision: 1326959
URL: http://svn.apache.org/viewvc?rev=1326959&view=rev
Log:
Merged revisions 1326956 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1326956 | ffang | 2012-04-17 15:11:51 +0800 (二, 17 4 2012) | 1 line
[CXF-4126]add testcase to demonstrate add new custom action on
WSS4JOutInterceptor also works
........
Modified:
cxf/branches/2.5.x-fixes/ (props changed)
cxf/branches/2.5.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java
Propchange: cxf/branches/2.5.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.5.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java?rev=1326959&r1=1326958&r2=1326959&view=diff
==============================================================================
---
cxf/branches/2.5.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java
(original)
+++
cxf/branches/2.5.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java
Tue Apr 17 07:17:21 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);
}