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 2015/06/02 18:48:06 UTC

svn commit: r1683136 - in /webservices/wss4j/trunk: ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java

Author: coheigea
Date: Tue Jun  2 16:48:06 2015
New Revision: 1683136

URL: http://svn.apache.org/r1683136
Log:
[WSS-539] - Avoid Base-64 (re)coding for BinarySecurityTokens

Modified:
    webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java

Modified: webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java?rev=1683136&r1=1683135&r2=1683136&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java (original)
+++ webservices/wss4j/trunk/ws-security-common/src/main/java/org/apache/wss4j/common/token/BinarySecurity.java Tue Jun  2 16:48:06 2015
@@ -48,6 +48,7 @@ public class BinarySecurity {
         org.slf4j.LoggerFactory.getLogger(BinarySecurity.class);
     
     private Element element;
+    private byte[] data;
 
     /**
      * Constructor.
@@ -177,11 +178,15 @@ public class BinarySecurity {
      * @return the byte array containing token information
      */
     public byte[] getToken() {
+        if (data != null) {
+            return data;
+        }
         try {
             String text = XMLUtils.getElementText(element);
             if (text == null) {
                 return null;
             }
+            
             return Base64.decode(text);
         } catch (Exception ex) {
             if (LOG.isDebugEnabled()) {
@@ -202,6 +207,14 @@ public class BinarySecurity {
         }
         Text node = getFirstNode();
         node.setData(Base64.encode(data));
+        setRawToken(data);
+    }
+    
+    /**
+     * Set the raw token data, without Base-64 encoding it into the Element.
+     */
+    public void setRawToken(byte[] data) {
+        this.data = Arrays.copyOf(data, data.length);
     }
 
     /**

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java?rev=1683136&r1=1683135&r2=1683136&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/processor/BinarySecurityTokenProcessor.java Tue Jun  2 16:48:06 2015
@@ -176,7 +176,7 @@ public class BinarySecurityTokenProcesso
             String xopUri = elementChild.getAttributeNS(null, "href");
             if (xopUri != null && xopUri.startsWith("cid:")) {
                 byte[] content = WSSecurityUtil.getBytesFromAttachment(xopUri, data);
-                token.setToken(content);
+                token.setRawToken(content);
             }
         }