You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2017/03/24 09:38:24 UTC

svn commit: r1788391 - in /webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src: main/java/org/apache/wss4j/dom/engine/ main/java/org/apache/wss4j/dom/handler/ main/java/org/apache/wss4j/dom/util/ test/java/org/apache/wss4j/dom/message/

Author: coheigea
Date: Fri Mar 24 09:38:23 2017
New Revision: 1788391

URL: http://svn.apache.org/viewvc?rev=1788391&view=rev
Log:
WSS-604 - UsernameTokenNoPassword does not work via WSHandler

Modified:
    webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
    webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
    webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
    webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java

Modified: webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java?rev=1788391&r1=1788390&r2=1788391&view=diff
==============================================================================
--- webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java (original)
+++ webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java Fri Mar 24 09:38:23 2017
@@ -87,6 +87,10 @@ public final class WSSConfig {
                 org.apache.wss4j.dom.action.UsernameTokenAction.class
             );
             tmp.put(
+                WSConstants.UT_NOPASSWORD,
+                org.apache.wss4j.dom.action.UsernameTokenAction.class
+            );
+            tmp.put(
                 WSConstants.ENCR,
                 org.apache.wss4j.dom.action.EncryptionAction.class
             );

Modified: webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java?rev=1788391&r1=1788390&r2=1788391&view=diff
==============================================================================
--- webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java (original)
+++ webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java Fri Mar 24 09:38:23 2017
@@ -129,9 +129,13 @@ public abstract class WSHandler {
         for (HandlerAction actionToDo : actions) {
             if (actionToDo.getAction() == WSConstants.SC) {
                 reqData.setEnableSignatureConfirmation(true);
-            } else if (actionToDo.getAction() == WSConstants.UT
+            } else if ((actionToDo.getAction() == WSConstants.UT
+                || actionToDo.getAction() == WSConstants.UT_NOPASSWORD)
                 && actionToDo.getActionToken() == null) {
                 decodeUTParameter(reqData);
+                if (actionToDo.getAction() == WSConstants.UT_NOPASSWORD) {
+                    reqData.setPwType(null);
+                }
             } else if (actionToDo.getAction() == WSConstants.UT_SIGN
                 && actionToDo.getActionToken() == null) {
                 decodeUTParameter(reqData);

Modified: webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java?rev=1788391&r1=1788390&r2=1788391&view=diff
==============================================================================
--- webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java (original)
+++ webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java Fri Mar 24 09:38:23 2017
@@ -474,6 +474,8 @@ public final class WSSecurityUtil {
                 return actions;
             } else if (single[i].equals(WSHandlerConstants.USERNAME_TOKEN)) {
                 actions.add(new HandlerAction(WSConstants.UT));
+            } else if (single[i].equals(WSHandlerConstants.USERNAME_TOKEN_NO_PASSWORD)) {
+                actions.add(new HandlerAction(WSConstants.UT_NOPASSWORD));
             } else if (single[i].equals(WSHandlerConstants.SIGNATURE)) {
                 actions.add(new HandlerAction(WSConstants.SIGN));
             } else if (single[i].equals(WSHandlerConstants.SIGNATURE_DERIVED)) {

Modified: webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java?rev=1788391&r1=1788390&r2=1788391&view=diff
==============================================================================
--- webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java (original)
+++ webservices/wss4j/branches/2_1_x-fixes/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java Fri Mar 24 09:38:23 2017
@@ -856,6 +856,35 @@ public class UsernameTokenTest extends o
     }
 
     /**
+     * Test that adds a UserNameToken with no password via WSHandler
+     */
+    @Test
+    public void testUsernameTokenWSHandlerNoPassword2() throws Exception {
+        CustomHandler handler = new CustomHandler();
+        Document doc = SOAPUtil.toSOAPPart(SOAPUtil.SAMPLE_SOAP_MSG);
+
+        RequestData reqData = new RequestData();
+        java.util.Map<String, Object> config = new java.util.TreeMap<String, Object>();
+        reqData.setUsername("wernerd");
+        reqData.setMsgContext(config);
+
+        HandlerAction action = new HandlerAction(WSConstants.UT_NOPASSWORD);
+        handler.send(
+            doc,
+            reqData,
+            Collections.singletonList(action),
+            true
+        );
+
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("Username Token via WSHandler");
+            String outputString =
+                XMLUtils.prettyDocumentToString(doc);
+            LOG.debug(outputString);
+        }
+    }
+
+    /**
      * Test that adds a UserNameToken with an empty password via WSHandler
      */
     @Test