Author: coheigea
Date: Fri Oct  2 19:16:41 2015
New Revision: 1706470

URL: http://svn.apache.org/viewvc?rev=1706470&view=rev
Log:
[WSS-557] - Using MTOM and WS-Security leads to "Attachment not found". Thanks 
to Ronny Fraunhofer for the patch.

Modified:
    
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java

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=1706470&r1=1706469&r2=1706470&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 Oct  2 19:16:41 2015
@@ -49,6 +49,8 @@ import org.w3c.dom.Text;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -576,7 +578,15 @@ public final class WSSecurityUtil {
             throw new 
WSSecurityException(WSSecurityException.ErrorCode.FAILED_CHECK);
         }
 
-        final String attachmentId = xopUri.substring("cid:".length());
+        String attachmentId = null;
+        try {
+            attachmentId = 
URLDecoder.decode(xopUri.substring("cid:".length()), "UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            throw new WSSecurityException(
+                WSSecurityException.ErrorCode.INVALID_SECURITY,
+                "empty", new Object[] {"Attachment ID cannot be decoded: " + 
xopUri}
+            );
+        }
 
         AttachmentRequestCallback attachmentRequestCallback = new 
AttachmentRequestCallback();
         attachmentRequestCallback.setAttachmentId(attachmentId);


Reply via email to