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 2008/09/26 18:32:53 UTC

svn commit: r699401 - in /webservices/wss4j/trunk/src/org/apache/ws/security: ./ action/ components/crypto/ conversation/ handler/ message/ message/token/ processor/ saml/ transform/ util/

Author: coheigea
Date: Fri Sep 26 09:32:52 2008
New Revision: 699401

URL: http://svn.apache.org/viewvc?rev=699401&view=rev
Log:
[WSS-129] - Set the cause of WSSecurityExceptions properly.

Modified:
    webservices/wss4j/trunk/src/org/apache/ws/security/WSPasswordCallback.java
    webservices/wss4j/trunk/src/org/apache/ws/security/WSSConfig.java
    webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityEngine.java
    webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityException.java
    webservices/wss4j/trunk/src/org/apache/ws/security/WSUsernameTokenPrincipal.java
    webservices/wss4j/trunk/src/org/apache/ws/security/action/EncryptionAction.java
    webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java
    webservices/wss4j/trunk/src/org/apache/ws/security/action/SignatureAction.java
    webservices/wss4j/trunk/src/org/apache/ws/security/action/UsernameTokenSignedAction.java
    webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/AbstractCrypto.java
    webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/BouncyCastle.java
    webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CredentialException.java
    webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CryptoBase.java
    webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/Merlin.java
    webservices/wss4j/trunk/src/org/apache/ws/security/conversation/ConversationException.java
    webservices/wss4j/trunk/src/org/apache/ws/security/handler/WSS4JHandler.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecDKSign.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSAMLToken.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSignEnvelope.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/token/UsernameToken.java
    webservices/wss4j/trunk/src/org/apache/ws/security/message/token/X509Security.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/DerivedKeyTokenProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/EncryptedKeyProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/ReferenceListProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/SecurityContextTokenProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/SignatureProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/UsernameTokenProcessor.java
    webservices/wss4j/trunk/src/org/apache/ws/security/processor/X509Util.java
    webservices/wss4j/trunk/src/org/apache/ws/security/saml/SAMLUtil.java
    webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java
    webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSignSAMLEnvelope.java
    webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java
    webservices/wss4j/trunk/src/org/apache/ws/security/util/Loader.java
    webservices/wss4j/trunk/src/org/apache/ws/security/util/UUIDGenerator.java
    webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java
    webservices/wss4j/trunk/src/org/apache/ws/security/util/XmlSchemaDateFormat.java

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSPasswordCallback.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSPasswordCallback.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSPasswordCallback.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSPasswordCallback.java Fri Sep 26 09:32:52 2008
@@ -45,7 +45,7 @@
  * <li><code>SIGNATURE</code> - need the password to get the private key of
  * this identifier (username) from    the keystore. WSS4J uses this private
  * key to produce a signature. The signature verfication uses the public
- * key to verfiy the signature.</li>
+ * key to verify the signature.</li>
  * <li><code>KEY_NAME</code> - need the <i>key</i>, not the password,
  * associated with the identifier. WSS4J uses this key to encrypt or
  * decrypt parts of the SOAP request. Note, the key must match the

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSSConfig.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSSConfig.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSSConfig.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSSConfig.java Fri Sep 26 09:32:52 2008
@@ -250,7 +250,9 @@
                 Transform.register(STRTransform.implementedTransformURI,
                         "org.apache.ws.security.transform.STRTransform");
             } catch (Exception ex) {
-                // TODO log error
+                if (log.isDebugEnabled()) {
+                    log.debug(ex.getMessage(), ex);
+                }
             }
             staticallyInitialized = true;
         }
@@ -397,7 +399,7 @@
                 log.debug(t.getMessage(), t);
             }
             throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "unableToLoadClass", new Object[] { name });
+                    "unableToLoadClass", new Object[] { name }, t);
         }
     }
     
@@ -427,7 +429,7 @@
                     log.debug(t.getMessage(), t);
                 }
                 throw new WSSecurityException(WSSecurityException.FAILURE,
-                        "unableToLoadClass", new Object[] { name });
+                        "unableToLoadClass", new Object[] { name }, t);
             }
         }
         return null;

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityEngine.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityEngine.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityEngine.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityEngine.java Fri Sep 26 09:32:52 2008
@@ -185,7 +185,7 @@
      * Process the security header given the soap envelope as W3C document.
      * <p/>
      * This is the main entry point to verify or decrypt a SOAP enevelope.
-     * First check if a <code>wsse:Security</code> is availabe with the
+     * First check if a <code>wsse:Security</code> is available with the
      * defined actor.
      *
      * @param doc       the SOAP envelope as {@link Document}

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityException.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityException.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityException.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSSecurityException.java Fri Sep 26 09:32:52 2008
@@ -202,7 +202,7 @@
                 return msg += (" (" + MessageFormat.format(resources.getString(msgId), args) + ")");
             }
         } catch (MissingResourceException e) {
-            throw new RuntimeException("Undefined '" + msgId + "' resource property");
+            throw new RuntimeException("Undefined '" + msgId + "' resource property", e);
         }
         return msg;
     }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/WSUsernameTokenPrincipal.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/WSUsernameTokenPrincipal.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/WSUsernameTokenPrincipal.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/WSUsernameTokenPrincipal.java Fri Sep 26 09:32:52 2008
@@ -23,7 +23,7 @@
  * This class implements the <code>Principal</code> interface and
  * represents a UsernameToken user. 
  * <p/>In addition to the principal's name
- * this principal object also conatins the nonce and created time of the
+ * this principal object also contains the nonce and created time of the
  * UsernameToken (refer to the OASIS WS Security specification, UsernameToken
  * profile). These values are set only if the password of UsernameToken was of
  * type <code>PasswordDigest</code>.
@@ -33,7 +33,7 @@
  * OASIS WSS specification for predefined password types. <p/>The
  * <code>equals()</code> method use the prinicipal's name only and does not
  * compare nonce or created time. 
- * <p/>Modeled according to the example provided
+ * <p/>Modelled according to the example provided
  * by JAAS documentation 
  * <p/>
  * 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/action/EncryptionAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/action/EncryptionAction.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/action/EncryptionAction.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/action/EncryptionAction.java Fri Sep 26 09:32:52 2008
@@ -35,8 +35,7 @@
             wsEncrypt.setKeyIdentifierType(reqData.getEncKeyId());
         }
         if (reqData.getEncKeyId() == WSConstants.EMBEDDED_KEYNAME) {
-            String encKeyName 
-		= handler.getString(WSHandlerConstants.ENC_KEY_NAME,
+            String encKeyName = handler.getString(WSHandlerConstants.ENC_KEY_NAME,
 				    reqData.getMsgContext());
             wsEncrypt.setEmbeddedKeyName(encKeyName);
             byte[] embeddedKey =
@@ -62,8 +61,7 @@
         try {
             wsEncrypt.build(doc, reqData.getEncCrypto(), reqData.getSecHeader());
         } catch (WSSecurityException e) {
-            throw new WSSecurityException("WSHandler: Encryption: error during message processing"
-                    + e);
+            throw new WSSecurityException("Error during encryption: ", e);
         }
     }
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/action/SAMLTokenSignedAction.java Fri Sep 26 09:32:52 2008
@@ -99,8 +99,7 @@
                     reqData.getSecHeader());
             reqData.getSignatureValues().add(wsSign.getSignatureValue());
         } catch (WSSecurityException e) {
-            throw new WSSecurityException("WSHandler: Signed SAML: error during message processing"
-                    + e);
+            throw new WSSecurityException("Error when signing the SAML token: ", e);
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/action/SignatureAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/action/SignatureAction.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/action/SignatureAction.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/action/SignatureAction.java Fri Sep 26 09:32:52 2008
@@ -54,7 +54,7 @@
             wsSign.build(doc, reqData.getSigCrypto(), reqData.getSecHeader());
             reqData.getSignatureValues().add(wsSign.getSignatureValue());
         } catch (WSSecurityException e) {
-            throw new WSSecurityException("WSHandler: Signature: error during message processing" + e);
+            throw new WSSecurityException("Error during Signature: ", e);
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/action/UsernameTokenSignedAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/action/UsernameTokenSignedAction.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/action/UsernameTokenSignedAction.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/action/UsernameTokenSignedAction.java Fri Sep 26 09:32:52 2008
@@ -109,8 +109,9 @@
             sign.computeSignature();
             reqData.getSignatureValues().add(sign.getSignatureValue());
         } catch (WSSecurityException e) {
-            throw new WSSecurityException("WSHandler: Error during Signature with UsernameToken secret"
-                    + e);
+            throw new WSSecurityException(
+                "WSHandler: Error during UsernameTokenSignature", e
+            );
         }
     }
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/AbstractCrypto.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/AbstractCrypto.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/AbstractCrypto.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/AbstractCrypto.java Fri Sep 26 09:32:52 2008
@@ -83,7 +83,9 @@
                 if (doDebug) {
                     log.debug(e.getMessage(), e);
                 }
-                throw new CredentialException(3, "proxyNotFound", new Object[]{location}, e);
+                throw new CredentialException(
+                    CredentialException.IO_ERROR, "proxyNotFound", new Object[]{location}, e
+                );
             }
         }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/BouncyCastle.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/BouncyCastle.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/BouncyCastle.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/BouncyCastle.java Fri Sep 26 09:32:52 2008
@@ -83,8 +83,9 @@
             CertificateFactory factory = CertificateFactory.getInstance("X.509");
             path = factory.generateCertPath(in);
         } catch (CertificateException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError", null, e
+            );
         }
         List l = path.getCertificates();
         X509Certificate[] certs = new X509Certificate[l.size()];
@@ -122,11 +123,13 @@
             CertPath path = factory.generateCertPath(list);
             return path.getEncoded();
         } catch (CertificateEncodingException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e
+            );
         } catch (CertificateException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError", null, e
+            );
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CredentialException.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CredentialException.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CredentialException.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CredentialException.java Fri Sep 26 09:32:52 2008
@@ -40,7 +40,7 @@
         try {
             resources = ResourceBundle.getBundle("org.apache.ws.security.components.crypto.errors");
         } catch (MissingResourceException e) {
-            throw new RuntimeException(e.getMessage());
+            throw new RuntimeException(e.getMessage(), e);
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CryptoBase.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CryptoBase.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CryptoBase.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/CryptoBase.java Fri Sep 26 09:32:52 2008
@@ -90,11 +90,15 @@
                     certFact = CertificateFactory.getInstance("X.509", provider);
                 }
             } catch (CertificateException e) {
-                throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                        "unsupportedCertType");
+                throw new WSSecurityException(
+                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "unsupportedCertType",
+                    null, e
+                );
             } catch (NoSuchProviderException e) {
-                throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                        "noSecProvider");
+                throw new WSSecurityException(
+                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "noSecProvider",
+                    null, e
+                );
             }
         }
         return certFact;
@@ -112,11 +116,12 @@
     public X509Certificate loadCertificate(InputStream in) throws WSSecurityException {
         X509Certificate cert = null;
         try {
-            cert =
-                    (X509Certificate) getCertificateFactory().generateCertificate(in);
+            cert = (X509Certificate) getCertificateFactory().generateCertificate(in);
         } catch (CertificateException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError",
+                null, e
+            );
         }
         return cert;
     }
@@ -179,7 +184,7 @@
      * the issuer of a Certificate.
      * <p/>
      * The search gets all alias names of the keystore and gets the certificate chain
-     * for each alias. Then the SerialNumber and Issuer fo each certificate of the chain
+     * for each alias. Then the SerialNumber and Issuer for each certificate of the chain
      * is compared with the parameters.
      *
      * @param issuer       The issuer's name for the certificate
@@ -234,8 +239,7 @@
                 }
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "keystore");
+            throw new WSSecurityException(WSSecurityException.FAILURE, "keystore", null, e);
         }
         return null;
     }
@@ -283,8 +287,7 @@
                 }
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "keystore");
+            throw new WSSecurityException(WSSecurityException.FAILURE, "keystore", null, e);
         }
         return null;
     }
@@ -316,8 +319,7 @@
                 }
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "keystore");
+            throw new WSSecurityException(WSSecurityException.FAILURE, "keystore", null, e);
         }
         return null;
     }
@@ -360,8 +362,7 @@
                 return null;
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                                          "keystore");
+            throw new WSSecurityException(WSSecurityException.FAILURE, "keystore", null, e);
         }
 
         X509Certificate[] x509certs = new X509Certificate[certs.length];
@@ -392,10 +393,10 @@
 
         try {
             sha = MessageDigest.getInstance("SHA-1");
-        } catch (NoSuchAlgorithmException e1) {
+        } catch (NoSuchAlgorithmException e) {
             throw new WSSecurityException(
-                    0,
-                    "noSHA1availabe");
+                WSSecurityException.FAILURE, "noSHA1availabe", null, e
+            );
         }
         try {
             for (Enumeration e = keystore.aliases(); e.hasMoreElements();) {
@@ -416,10 +417,11 @@
                 sha.reset();
                 try {
                     sha.update(cert.getEncoded());
-                } catch (CertificateEncodingException e1) {
+                } catch (CertificateEncodingException ex) {
                     throw new WSSecurityException(
-                            WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                            "encodeError");
+                        WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError",
+                        null, ex
+                    );
                 }
                 byte[] data = sha.digest();
 
@@ -428,8 +430,9 @@
                 }
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "keystore");
+            throw new WSSecurityException(
+                WSSecurityException.FAILURE, "keystore", null, e
+            );
         }
         return null;
     }
@@ -482,9 +485,10 @@
                 sha = MessageDigest.getInstance("SHA-1");
             } catch (NoSuchAlgorithmException ex) {
                 throw new WSSecurityException(
-                        1,
-                        "noSKIHandling",
-                        new Object[]{"Wrong certificate version (<3) and no SHA1 message digest availabe"});
+                    WSSecurityException.UNSUPPORTED_SECURITY_TOKEN, "noSKIHandling",
+                    new Object[]{"Wrong certificate version (<3) and no SHA1 message digest availabe"},
+                    ex
+                );
             }
             sha.reset();
             sha.update(value);
@@ -560,11 +564,15 @@
             CertPath path = getCertificateFactory().generateCertPath(list);
             return path.getEncoded();
         } catch (CertificateEncodingException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError",
+                null, e
+            );
         } catch (CertificateException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError",
+                null, e
+            );
         }
     }
 
@@ -586,8 +594,10 @@
         try {
             path = getCertificateFactory().generateCertPath(in);
         } catch (CertificateException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError",
+                null, e
+            );
         }
         List l = path.getCertificates();
         X509Certificate[] certs = new X509Certificate[l.size()];
@@ -715,8 +725,9 @@
                 }
             }
         } catch (KeyStoreException e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "keystore");
+            throw new WSSecurityException(
+                WSSecurityException.FAILURE, "keystore", null, e
+            );
         }
         return aliases;
     }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/Merlin.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/Merlin.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/Merlin.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/components/crypto/Merlin.java Fri Sep 26 09:32:52 2008
@@ -92,8 +92,8 @@
             path = getCertificateFactory().generateCertPath(in);
         } catch (CertificateException e) {
             throw new WSSecurityException(
-                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError", null, e
+            );
         }
         List l = path.getCertificates();
         X509Certificate[] certs = new X509Certificate[l.size()];
@@ -132,12 +132,12 @@
             return path.getEncoded();
         } catch (CertificateEncodingException e) {
             throw new WSSecurityException(
-                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e
+            );
         } catch (CertificateException e) {
             throw new WSSecurityException(
-                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "parseError");
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "parseError", null, e
+            );
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/conversation/ConversationException.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/conversation/ConversationException.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/conversation/ConversationException.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/conversation/ConversationException.java Fri Sep 26 09:32:52 2008
@@ -39,7 +39,7 @@
         try {
             resources = ResourceBundle.getBundle("org.apache.ws.security.conversation.errors");
         } catch (MissingResourceException e) {
-            throw new RuntimeException(e.getMessage());
+            throw new RuntimeException(e.getMessage(), e);
         }
     }
     
@@ -91,7 +91,7 @@
         try {
             msg = MessageFormat.format(resources.getString(faultCode), args);
         } catch (MissingResourceException e) {
-            throw new RuntimeException("Undefined '" + faultCode + "' resource property");
+            throw new RuntimeException("Undefined '" + faultCode + "' resource property", e);
         }
         if(msg != null) {
             return msg;

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/handler/WSS4JHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/handler/WSS4JHandler.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/handler/WSS4JHandler.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/handler/WSS4JHandler.java Fri Sep 26 09:32:52 2008
@@ -262,7 +262,7 @@
                 if (doDebug) {
                     log.debug(e.getMessage(), e);
                 }
-                throw new JAXRPCException("WSS4JHandler: cannot get SOAP envlope from message" + e);
+                throw new JAXRPCException("WSS4JHandler: cannot get SOAP envlope from message", e);
             }
         }
         if (doDebug) {
@@ -309,7 +309,7 @@
                 if (doDebug) {
                     log.debug(se.getMessage(), se);
                 }
-                throw new JAXRPCException("Couldn't set content on SOAPPart" + se.getMessage());
+                throw new JAXRPCException("Couldn't set content on SOAPPart" + se.getMessage(), se);
             }
             mc.setProperty(WSHandlerConstants.SND_SECURITY, null);
         }
@@ -424,7 +424,9 @@
             if (doDebug) {
                 log.debug(se.getMessage(), se);
             }
-            throw new JAXRPCException("Couldn't set content on SOAPPart" + se.getMessage());
+            throw new JAXRPCException(
+                "Couldn't set content on SOAPPart" + se.getMessage(), se
+            );
         }
 
         if (doDebug) {

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecDKSign.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecDKSign.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecDKSign.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecDKSign.java Fri Sep 26 09:32:52 2008
@@ -143,7 +143,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         } else {
             try {
@@ -151,7 +152,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         }
         

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecEncryptedKey.java Fri Sep 26 09:32:52 2008
@@ -45,7 +45,7 @@
 /**
  * Builder class to build an EncryptedKey.
  * 
- * This is expecially useful in the case where the same
+ * This is especially useful in the case where the same
  * <code>EncryptedKey</code> has to be used to sign and encrypt the message In
  * such a situation this builder will add the <code>EncryptedKey</code> to the
  * security header and we can use the information form the builder to provide to

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSAMLToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSAMLToken.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSAMLToken.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSAMLToken.java Fri Sep 26 09:32:52 2008
@@ -77,7 +77,7 @@
         try {
             element = (Element) saml.toDOM(document);
         } catch (SAMLException ex) {
-            throw new RuntimeException(ex.toString());
+            throw new RuntimeException(ex.toString(), ex);
         }
         
         WSSecurityUtil.prependChildElement(document, secHeader

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSecSignature.java Fri Sep 26 09:32:52 2008
@@ -362,7 +362,8 @@
 			} catch (XMLSecurityException e) {
 				log.error("", e);
 				throw new WSSecurityException(
-						WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+				    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+				);
 			}
 		} else {
 			try {
@@ -370,7 +371,8 @@
 			} catch (XMLSecurityException e) {
 				log.error("", e);
 				throw new WSSecurityException(
-						WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+					WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+				);
 			}
 		}
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSignEnvelope.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSignEnvelope.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSignEnvelope.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/WSSignEnvelope.java Fri Sep 26 09:32:52 2008
@@ -299,7 +299,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         } else {
             try {
@@ -307,7 +308,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         }
         /*

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/token/SecurityTokenReference.java Fri Sep 26 09:32:52 2008
@@ -184,7 +184,7 @@
                         cb.handle(new Callback[]{pwcb});
                     } catch (Exception e) {
                         throw new WSSecurityException(WSSecurityException.FAILURE,
-                                "noPassword", new Object[] { id });
+                                "noPassword", new Object[] { id }, e);
                     }
                     
                     Element assertionElem = pwcb.getCustomToken();
@@ -241,8 +241,8 @@
         try {
             data = cert.getEncoded();
         } catch (CertificateEncodingException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e);
         }
         Text text = doc.createTextNode(Base64.encode(data));
         
@@ -300,15 +300,17 @@
         try {
             sha = MessageDigest.getInstance("SHA-1");
         } catch (NoSuchAlgorithmException e1) {
-            throw new WSSecurityException(0, "noSHA1availabe");
+            throw new WSSecurityException(
+                WSSecurityException.FAILURE, "noSHA1availabe", null, e1
+            );
         }
         sha.reset();
         try {
             sha.update(cert.getEncoded());
         } catch (CertificateEncodingException e1) {
             throw new WSSecurityException(
-                    WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e1
+            );
         }
         byte[] data = sha.digest();
 
@@ -541,7 +543,8 @@
         } catch (XMLSecurityException e) {
             throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
                     "noToken",
-                    new Object[]{"Issuer/Serial data element missing"});
+                    new Object[]{"Issuer/Serial data element missing"},
+                    e);
         }
         return issuerSerial;
     }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/token/UsernameToken.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/token/UsernameToken.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/token/UsernameToken.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/token/UsernameToken.java Fri Sep 26 09:32:52 2008
@@ -652,7 +652,9 @@
             if (doDebug) {
                 log.debug(e.getMessage(), e);
             }
-            throw new WSSecurityException(0, "noSHA1availabe");
+            throw new WSSecurityException(
+                WSSecurityException.FAILURE, "noSHA1availabe", null, e
+            );
         }
         sha.reset();
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/message/token/X509Security.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/message/token/X509Security.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/message/token/X509Security.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/message/token/X509Security.java Fri Sep 26 09:32:52 2008
@@ -118,8 +118,9 @@
         try {
             setToken(cert.getEncoded());
         } catch (CertificateEncodingException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-                    "encodeError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e
+            );
         }
     }
 }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/DerivedKeyTokenProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/DerivedKeyTokenProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/DerivedKeyTokenProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/DerivedKeyTokenProcessor.java Fri Sep 26 09:32:52 2008
@@ -103,7 +103,9 @@
             this.keyBytes = algo.createKey(this.secret, seed, offset, length);
             
         } catch (Exception e) {
-            throw new WSSecurityException(WSSecurityException.FAILURE, e.getMessage());
+            throw new WSSecurityException(
+                WSSecurityException.FAILURE, null, null, e
+            );
         }
     }
 
@@ -177,10 +179,10 @@
             cb.handle(callbacks);
         } catch (IOException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                    new Object[] { id });
+                    new Object[] { id }, e);
         } catch (UnsupportedCallbackException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                    new Object[] { id });
+                    new Object[] { id }, e);
         }
 
         return callback.getKey();
@@ -206,10 +208,10 @@
             	cb.handle(new Callback[]{pwcb});
             } catch (IOException e) {
                 throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                        new Object[] { id });
+                        new Object[] { id }, e);
             } catch (UnsupportedCallbackException e) {
                 throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                        new Object[] { id });
+                        new Object[] { id }, e);
             }
             
         }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/EncryptedKeyProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/EncryptedKeyProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/EncryptedKeyProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/EncryptedKeyProcessor.java Fri Sep 26 09:32:52 2008
@@ -274,11 +274,11 @@
             } catch (IOException e) {
                 throw new WSSecurityException(WSSecurityException.FAILURE,
                         "noPassword",
-                        new Object[]{alias});
+                        new Object[]{alias}, e);
             } catch (UnsupportedCallbackException e) {
                 throw new WSSecurityException(WSSecurityException.FAILURE,
                         "noPassword",
-                        new Object[]{alias});
+                        new Object[]{alias}, e);
             }
             String password = pwCb.getPassword();
             if (password == null) {

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/ReferenceListProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/ReferenceListProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/ReferenceListProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/ReferenceListProcessor.java Fri Sep 26 09:32:52 2008
@@ -281,7 +281,7 @@
                     cb.handle(new Callback[]{pwcb});
                 } catch (Exception e) {
                     throw new WSSecurityException(WSSecurityException.FAILURE,
-                            "noPassword", new Object[] { id });
+                            "noPassword", new Object[] { id }, e);
                 }
 			    decryptedData = pwcb.getKey();
 			    
@@ -316,7 +316,7 @@
                     cb.handle(new Callback[]{pwcb});
                 } catch (Exception e) {
                     throw new WSSecurityException(WSSecurityException.FAILURE,
-                            "noPassword", new Object[] { sha });
+                            "noPassword", new Object[] { sha }, e);
                 }
 			    decryptedData = pwcb.getKey();
 			}

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/SecurityContextTokenProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/SecurityContextTokenProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/SecurityContextTokenProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/SecurityContextTokenProcessor.java Fri Sep 26 09:32:52 2008
@@ -92,10 +92,10 @@
             cb.handle(callbacks);
         } catch (IOException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                    new Object[] { sct.getIdentifier() });
+                    new Object[] { sct.getIdentifier() }, e);
         } catch (UnsupportedCallbackException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                    new Object[] { sct.getIdentifier() });
+                    new Object[] { sct.getIdentifier() }, e);
         }
 
         return callback.getKey();

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/SignatureProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/SignatureProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/SignatureProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/SignatureProcessor.java Fri Sep 26 09:32:52 2008
@@ -160,8 +160,9 @@
         try {
             sig = new XMLSignature(elem, null);
         } catch (XMLSecurityException e2) {
-            throw new WSSecurityException(WSSecurityException.FAILED_CHECK,
-                    "noXMLSig");
+            throw new WSSecurityException(
+                WSSecurityException.FAILED_CHECK, "noXMLSig", null, e2
+            );
         }
 
         sig.addResourceResolver(EnvelopeIdResolver.getInstance());
@@ -264,7 +265,7 @@
                             cb.handle(new Callback[]{pwcb});
                         } catch (Exception e) {
                             throw new WSSecurityException(WSSecurityException.FAILURE,
-                                    "noPassword", new Object[] { id });
+                                    "noPassword", new Object[] { id }, e);
                         }
                         
                         secretKey = pwcb.getKey();
@@ -291,7 +292,7 @@
                     	cb.handle(new Callback[]{pwcb});
 		            } catch (Exception e) {
 		                throw new WSSecurityException(WSSecurityException.FAILURE,
-		                        "noPassword", new Object[] { id });
+		                        "noPassword", new Object[] { id }, e);
 		            }
             
 		            secretKey = pwcb.getKey();
@@ -327,11 +328,13 @@
             try {
                 certs[0].checkValidity();
             } catch (CertificateExpiredException e) {
-                throw new WSSecurityException(WSSecurityException.FAILED_CHECK,
-                        "invalidCert");
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_CHECK, "invalidCert", null, e
+                );
             } catch (CertificateNotYetValidException e) {
-                throw new WSSecurityException(WSSecurityException.FAILED_CHECK,
-                        "invalidCert");
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_CHECK, "invalidCert", null, e
+                );
             }
         }
         try {
@@ -363,7 +366,8 @@
                         siRef = si.item(i);
                     } catch (XMLSecurityException e3) {
                         throw new WSSecurityException(
-                                WSSecurityException.FAILED_CHECK);
+                            WSSecurityException.FAILED_CHECK, null, null, e3
+                        );
                     }
                     String uri = siRef.getURI();
                     if(uri != null && !"".equals(uri)) {
@@ -431,7 +435,9 @@
                 throw new WSSecurityException(WSSecurityException.FAILED_CHECK);
             }
         } catch (XMLSignatureException e1) {
-            throw new WSSecurityException(WSSecurityException.FAILED_CHECK);
+            throw new WSSecurityException(
+                WSSecurityException.FAILED_CHECK, null, null, e1
+            );
         }
     }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/UsernameTokenProcessor.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/UsernameTokenProcessor.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/UsernameTokenProcessor.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/UsernameTokenProcessor.java Fri Sep 26 09:32:52 2008
@@ -109,12 +109,16 @@
                 if (log.isDebugEnabled()) {
                     log.debug(e);
                 }
-                throw new WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_AUTHENTICATION, null, null, e
+                );
             } catch (UnsupportedCallbackException e) {
                 if (log.isDebugEnabled()) {
                     log.debug(e);
                 }
-                throw new WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_AUTHENTICATION, null, null, e
+                );
             }
             origPassword = pwCb.getPassword();
             if (log.isDebugEnabled()) {
@@ -149,12 +153,16 @@
                 if (log.isDebugEnabled()) {
                     log.debug(e);
                 }
-                throw new WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_AUTHENTICATION, null, null, e
+                );
             } catch (UnsupportedCallbackException e) {
                 if (log.isDebugEnabled()) {
                     log.debug(e);
                 }
-                throw new WSSecurityException(WSSecurityException.FAILED_AUTHENTICATION);
+                throw new WSSecurityException(
+                    WSSecurityException.FAILED_AUTHENTICATION, null, null, e
+                );
             }
             ut.setRawPassword(password);
         }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/processor/X509Util.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/processor/X509Util.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/processor/X509Util.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/processor/X509Util.java Fri Sep 26 09:32:52 2008
@@ -41,7 +41,7 @@
          * holds the element whose contents where encrypted, e.g. soapenv:Body, or the
          * xenc:EncryptedData element (in case of Element encryption). In either case we need
          * to get the xenc:EncryptedData element. So get it. The findElement method returns
-         * immediatly if its already the correct element.
+         * immediately if its already the correct element.
          * Then we can get the Type attribute.
          */
 
@@ -107,11 +107,11 @@
         } catch (IOException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE,
                     "noPassword",
-                    new Object[]{keyName});
+                    new Object[]{keyName}, e);
         } catch (UnsupportedCallbackException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE,
                     "noPassword",
-                    new Object[]{keyName});
+                    new Object[]{keyName}, e);
         }
         byte[] decryptedData = pwCb.getKey();
         if (decryptedData == null) {

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/saml/SAMLUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/saml/SAMLUtil.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/saml/SAMLUtil.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/saml/SAMLUtil.java Fri Sep 26 09:32:52 2008
@@ -71,7 +71,7 @@
                 cb.handle(new Callback[]{pwcb});
             } catch (Exception e1) {
                 throw new WSSecurityException(WSSecurityException.FAILURE, "noKey",
-                        new Object[] { assertion.getId() });
+                        new Object[] { assertion.getId() }, e1);
             }
         }
         
@@ -139,7 +139,7 @@
                     } catch (XMLSecurityException e3) {
                         throw new WSSecurityException(WSSecurityException.FAILURE,
                                 "invalidSAMLsecurity",
-                                new Object[]{"cannot get certificate (key holder)"});
+                                new Object[]{"cannot get certificate (key holder)"}, e3);
                     }
                     
                 } else {
@@ -178,7 +178,7 @@
             assertion = new SAMLAssertion(elem);
         } catch (SAMLException e) {
             throw new WSSecurityException(WSSecurityException.FAILURE,
-                    "invalidSAMLToken", new Object[]{"for Signature (cannot parse)"});
+                    "invalidSAMLToken", new Object[]{"for Signature (cannot parse)"}, e);
         }
         SAMLSubjectStatement samlSubjS = null;
         Iterator it = assertion.getStatements();
@@ -228,7 +228,7 @@
         } catch (XMLSecurityException e3) {
             throw new WSSecurityException(WSSecurityException.FAILURE,
                     "invalidSAMLsecurity",
-                    new Object[]{"cannot get certificate (key holder)"});
+                    new Object[]{"cannot get certificate (key holder)"}, e3);
         }
         return certs;
     }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSecSignatureSAML.java Fri Sep 26 09:32:52 2008
@@ -304,7 +304,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         } else {
             try {
@@ -312,7 +313,8 @@
             } catch (XMLSecurityException e) {
                 log.error("", e);
                 throw new WSSecurityException(
-                        WSSecurityException.FAILED_SIGNATURE, "noXMLSig");
+                    WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+                );
             }
         }
 

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSignSAMLEnvelope.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSignSAMLEnvelope.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSignSAMLEnvelope.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/saml/WSSignSAMLEnvelope.java Fri Sep 26 09:32:52 2008
@@ -214,8 +214,9 @@
         try {
             sig = new XMLSignature(doc, null, sigAlgo, canonAlgo);
         } catch (XMLSecurityException e) {
-            throw new WSSecurityException(WSSecurityException.FAILED_SIGNATURE,
-                    "noXMLSig");
+            throw new WSSecurityException(
+                WSSecurityException.FAILED_SIGNATURE, "noXMLSig", null, e
+            );
         }
 
         KeyInfo info = sig.getKeyInfo();

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/transform/STRTransform.java Fri Sep 26 09:32:52 2008
@@ -317,8 +317,9 @@
         try {
             data = cert.getEncoded();
         } catch (CertificateEncodingException e) {
-            throw new WSSecurityException(WSSecurityException.SECURITY_TOKEN_UNAVAILABLE,
-            "encodeError");
+            throw new WSSecurityException(
+                WSSecurityException.SECURITY_TOKEN_UNAVAILABLE, "encodeError", null, e
+            );
         }
         String prefix = WSSecurityUtil
                 .getPrefixNS(WSConstants.WSSE_NS, secRefE);

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/util/Loader.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/util/Loader.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/util/Loader.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/util/Loader.java Fri Sep 26 09:32:52 2008
@@ -130,6 +130,7 @@
                     return c;
             }
         } catch (Throwable e) {
+            log.warn(e.getMessage(), e);
         }
         return loadClass(clazz);
     }
@@ -154,6 +155,7 @@
                     return c;
             }
         } catch (Throwable e) {
+            log.warn(e.getMessage(), e);
         }
         // we reached here because tcl was null or because of a
         // security exception, or because clazz could not be loaded...

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/util/UUIDGenerator.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/util/UUIDGenerator.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/util/UUIDGenerator.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/util/UUIDGenerator.java Fri Sep 26 09:32:52 2008
@@ -23,10 +23,15 @@
 import java.util.Date;
 import java.util.Random;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
 /**
  * UUID generator (taken from Axis2) 
  */
 public class UUIDGenerator {
+    
+    private static final Log log = LogFactory.getLog(UUIDGenerator.class);
 
     private static String baseUUID = null;
     private static long incrementingValue = 0;
@@ -69,8 +74,10 @@
         try {
             md5 = MessageDigest.getInstance("MD5");
         } catch (NoSuchAlgorithmException e) {
-            //System.out.println("Error: " + e);
-            //todo heve to be properly handle
+            if (log.isDebugEnabled()) {
+                log.debug(e.getMessage(), e);
+            }
+            //todo have to be properly handled
         }
         md5.update(sb.toString().getBytes());
         byte[] array = md5.digest();

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/util/WSSecurityUtil.java Fri Sep 26 09:32:52 2008
@@ -686,14 +686,14 @@
             }
         } catch (NoSuchPaddingException ex) {
             throw new WSSecurityException(
-                    WSSecurityException.UNSUPPORTED_ALGORITHM,
-                    "unsupportedKeyTransp", new Object[] { "No such padding: "
-                            + cipherAlgo });
+                WSSecurityException.UNSUPPORTED_ALGORITHM, "unsupportedKeyTransp", 
+                new Object[] { "No such padding: " + cipherAlgo }, ex
+            );
         } catch (NoSuchAlgorithmException ex) {
             throw new WSSecurityException(
-                    WSSecurityException.UNSUPPORTED_ALGORITHM,
-                    "unsupportedKeyTransp",
-                    new Object[] { "No such algorithm: " + cipherAlgo });
+                WSSecurityException.UNSUPPORTED_ALGORITHM, "unsupportedKeyTransp",
+                new Object[] { "No such algorithm: " + cipherAlgo }, ex
+            );
         }
         return cipher;
     }

Modified: webservices/wss4j/trunk/src/org/apache/ws/security/util/XmlSchemaDateFormat.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/org/apache/ws/security/util/XmlSchemaDateFormat.java?rev=699401&r1=699400&r2=699401&view=diff
==============================================================================
--- webservices/wss4j/trunk/src/org/apache/ws/security/util/XmlSchemaDateFormat.java (original)
+++ webservices/wss4j/trunk/src/org/apache/ws/security/util/XmlSchemaDateFormat.java Fri Sep 26 09:32:52 2008
@@ -161,7 +161,7 @@
 				}
 			}
 		} catch (ParseException pe) {
-			log.error(pe.toString());
+			log.error(pe.toString(), pe);
 			index = 0; // IMPORTANT: this tells DateFormat.parse() to throw a ParseException
 			parse_pos.setErrorIndex(index);
 			date = null;



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