You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by co...@apache.org on 2009/07/23 12:21:58 UTC

svn commit: r797005 - /webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java

Author: coheigea
Date: Thu Jul 23 10:21:58 2009
New Revision: 797005

URL: http://svn.apache.org/viewvc?rev=797005&view=rev
Log:
Merged a fix for the problem with parsing BinarySecurityTokens.

Modified:
    webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java

Modified: webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java?rev=797005&r1=797004&r2=797005&view=diff
==============================================================================
--- webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java (original)
+++ webservices/wss4j/branches/1_5_x-fixes/src/org/apache/ws/security/message/token/BinarySecurity.java Thu Jul 23 10:21:58 2009
@@ -17,6 +17,8 @@
 
 package org.apache.ws.security.message.token;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.WSSecurityException;
 import org.apache.ws.security.util.DOM2Writer;
@@ -39,6 +41,7 @@
     public static final QName TOKEN_BST = new QName(WSConstants.WSSE_NS, "BinarySecurityToken");
     public static final QName TOKEN_KI = new QName(WSConstants.WSSE_NS, "KeyIdentifier");
     public static final String BASE64_ENCODING = WSConstants.SOAPMESSAGE_NS + "#Base64Binary";
+    private static final Log LOG = LogFactory.getLog(BinarySecurity.class.getName());
     protected Element element = null;
 
     /**
@@ -135,16 +138,24 @@
     /**
      * get the byte array containing token information.
      * 
-     * @return TODO
+     * @return the byte array containing token information
      */
     public byte[] getToken() {
-        Text node = getFirstNode();
-        if (node == null) {
-            return null;
+        Node node = element.getFirstChild();
+        StringBuffer buffer = new StringBuffer();
+        while (node != null) {
+            if (Node.TEXT_NODE == node.getNodeType()) {
+                buffer.append(((Text)node).getData());
+            }
+            node = node.getNextSibling();
         }
+                
         try {
-            return Base64.decode(node.getData());
-        } catch (Exception e) {
+            return Base64.decode(buffer.toString());
+        } catch (Exception ex) {
+            if (LOG.isDebugEnabled()) {
+                LOG.debug(ex.getMessage(), ex);
+            }
             return null;
         }
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org