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-unsubscr...@ws.apache.org
For additional commands, e-mail: wss4j-dev-h...@ws.apache.org

Reply via email to