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:35:37 UTC

svn commit: r1788390 - in /webservices/wss4j/trunk/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:35:37 2017
New Revision: 1788390

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

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

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java?rev=1788390&r1=1788389&r2=1788390&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/engine/WSSConfig.java Fri Mar 24 09:35:37 2017
@@ -82,6 +82,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/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java?rev=1788390&r1=1788389&r2=1788390&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java Fri Mar 24 09:35:37 2017
@@ -88,7 +88,7 @@ public abstract class WSHandler {
             wssConfig = WSSConfig.getNewInstance();
             reqData.setWssConfig(wssConfig);
         }
-        
+
         if (reqData.getWsDocInfo() == null) {
             WSDocInfo wsDocInfo = new WSDocInfo(doc);
             reqData.setWsDocInfo(wsDocInfo);
@@ -135,9 +135,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);
@@ -621,7 +625,7 @@ public abstract class WSHandler {
         boolean includeToken =
             decodeBooleanConfigValue(mc, WSHandlerConstants.INCLUDE_SIGNATURE_TOKEN, false);
         actionToken.setIncludeToken(includeToken);
-        
+
         if (!reqData.isExpandXopInclude()) {
             boolean expandXOP =
                 decodeBooleanConfigValue(

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java?rev=1788390&r1=1788389&r2=1788390&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java Fri Mar 24 09:35:37 2017
@@ -468,6 +468,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/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java?rev=1788390&r1=1788389&r2=1788390&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/UsernameTokenTest.java Fri Mar 24 09:35:37 2017
@@ -866,6 +866,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