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 2013/03/13 16:10:08 UTC

svn commit: r1455989 - in /webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom: handler/WSHandler.java message/WSSecEncrypt.java processor/X509Util.java

Author: coheigea
Date: Wed Mar 13 15:10:08 2013
New Revision: 1455989

URL: http://svn.apache.org/r1455989
Log:
Some fixes when not using a KeyName for symmetric encryption


Conflicts:
	ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
	ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java

Modified:
    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/message/WSSecEncrypt.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java

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=1455989&r1=1455988&r2=1455989&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 Wed Mar 13 15:10:08 2013
@@ -578,23 +578,6 @@ public abstract class WSHandler {
     protected void decodeEncryptionParameter(RequestData reqData) 
         throws WSSecurityException {
         Object mc = reqData.getMsgContext();
-        String encUser = getString(WSHandlerConstants.ENCRYPTION_USER, mc);
-
-        if (encUser != null) {
-            reqData.setEncUser(encUser);
-        } else {
-            reqData.setEncUser(reqData.getUsername());
-        }
-        if (reqData.getEncUser() == null) {
-            throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
-                    "empty", "WSHandler: Encryption: no username");
-        }
-        /*
-         * String msgType = msgContext.getCurrentMessage().getMessageType(); if
-         * (msgType != null && msgType.equals(Message.RESPONSE)) {
-         * handleSpecialUser(encUser); }
-         */
-        handleSpecialUser(reqData);
 
         /*
          * If the following parameters are no used (they return null) then the
@@ -642,6 +625,23 @@ public abstract class WSHandler {
             boolean encSymEndKeyBoolean = Boolean.parseBoolean(encSymEncKey);
             reqData.setEncryptSymmetricEncryptionKey(encSymEndKeyBoolean);
         }
+        
+        String encUser = getString(WSHandlerConstants.ENCRYPTION_USER, mc);
+        if (encUser != null) {
+            reqData.setEncUser(encUser);
+        } else {
+            reqData.setEncUser(reqData.getUsername());
+        }
+        if (reqData.getEncryptSymmetricEncryptionKey() && reqData.getEncUser() == null) {
+            throw new WSSecurityException(WSSecurityException.ErrorCode.FAILURE,
+                    "empty", "WSHandler: Encryption: no username");
+        }
+        /*
+         * String msgType = msgContext.getCurrentMessage().getMessageType(); if
+         * (msgType != null && msgType.equals(Message.RESPONSE)) {
+         * handleSpecialUser(encUser); }
+         */
+        handleSpecialUser(reqData);
 
         String encParts = getString(WSHandlerConstants.ENCRYPTION_PARTS, mc);
         if (encParts != null) {

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java?rev=1455989&r1=1455988&r2=1455989&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/message/WSSecEncrypt.java Wed Mar 13 15:10:08 2013
@@ -527,7 +527,7 @@ public class WSSecEncrypt extends WSSecE
                 WSConstants.XMLNS_NS, "xmlns:" + tmpE.getPrefix(), tmpE.getNamespaceURI()
             );
             keyInfo.addUnknownElement(securityTokenReference.getElement());
-        } else {
+        } else if (encKeyId != null) {
             SecurityTokenReference secToken = new SecurityTokenReference(document);
             secToken.addWSSENamespace();
             Reference ref = new Reference(document);

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java?rev=1455989&r1=1455988&r2=1455989&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/X509Util.java Wed Mar 13 15:10:08 2013
@@ -94,7 +94,7 @@ public final class X509Util {
             keyName = builder.toString();
         }
         if (keyName == null || keyName.length() <= 0) {
-            throw new WSSecurityException(WSSecurityException.ErrorCode.INVALID_SECURITY, "noKeyname");
+            log.debug("No Key Name available");
         }
         WSPasswordCallback pwCb = 
                 new WSPasswordCallback(keyName, WSPasswordCallback.Usage.SECRET_KEY);