dims        2005/08/18 06:54:39

  Modified:    src/org/apache/ws/sandbox/security/conversation
                        ConversationEngine.java
               src/org/apache/ws/security/components/crypto
                        CryptoFactory.java
               src/org/apache/ws/security/util Loader.java
               src/org/apache/ws/sandbox/security/trust/message/token
                        RequestedProofToken.java
               src/org/apache/ws/security/saml SAMLIssuerFactory.java
               src/org/apache/ws/sandbox/security/trust STSManager.java
                        TrustEngine.java
               src/org/apache/ws/security/handler WSHandler.java
  Log:
  Fix for WSS-17 - Use Context ClassLoader when loading CallbackHandler
  
  Revision  Changes    Path
  1.13      +2 -1      
ws-wss4j/src/org/apache/ws/sandbox/security/conversation/ConversationEngine.java
  
  Index: ConversationEngine.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/sandbox/security/conversation/ConversationEngine.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- ConversationEngine.java   17 Aug 2005 16:48:52 -0000      1.12
  +++ ConversationEngine.java   18 Aug 2005 13:54:38 -0000      1.13
  @@ -54,6 +54,7 @@
   import 
org.apache.ws.sandbox.security.trust.message.token.RequestSecurityTokenResponse;
   import 
org.apache.ws.sandbox.security.trust.message.token.RequestedProofToken;
   import org.apache.ws.security.util.WSSecurityUtil;
  +import org.apache.ws.security.util.Loader;
   import org.apache.xml.security.encryption.XMLCipher;
   import org.apache.xml.security.encryption.XMLEncryptionException;
   import org.apache.xml.security.exceptions.XMLSecurityException;
  @@ -970,7 +971,7 @@
                        if (cb != null) {
                                Class cbClass = null;
                                        try {
  -                                             cbClass = 
java.lang.Class.forName(cb);
  +                                             cbClass = Loader.loadClass(cb);
                                         cbHandler = (CallbackHandler) 
cbClass.newInstance();
   
                                        } catch (ClassNotFoundException e) {
  
  
  
  1.9       +1 -1      
ws-wss4j/src/org/apache/ws/security/components/crypto/CryptoFactory.java
  
  Index: CryptoFactory.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/security/components/crypto/CryptoFactory.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- CryptoFactory.java        15 Aug 2005 14:02:41 -0000      1.8
  +++ CryptoFactory.java        18 Aug 2005 13:54:38 -0000      1.9
  @@ -106,7 +106,7 @@
           Crypto crypto = null;
           try {
               // instruct the class loader to load the crypto implementation
  -            cryptogenClass = java.lang.Class.forName(cryptoClassName);
  +            cryptogenClass = Loader.loadClass(cryptoClassName);
           } catch (ClassNotFoundException e) {
               throw new RuntimeException(cryptoClassName + " Not Found");
           }
  
  
  
  1.3       +7 -5      ws-wss4j/src/org/apache/ws/security/util/Loader.java
  
  Index: Loader.java
  ===================================================================
  RCS file: /home/cvs/ws-wss4j/src/org/apache/ws/security/util/Loader.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Loader.java       9 Aug 2004 17:53:47 -0000       1.2
  +++ Loader.java       18 Aug 2005 13:54:38 -0000      1.3
  @@ -100,12 +100,14 @@
        */
       static public Class loadClass(String clazz) throws 
ClassNotFoundException {
           try {
  -            return getTCL().loadClass(clazz);
  +            Class c = getTCL().loadClass(clazz);
  +            if (c != null)
  +                return c;
           } catch (Throwable e) {
  -            // we reached here because tcl was null or because of a
  -            // security exception, or because clazz could not be loaded...
  -            // In any case we now try one more time
  -            return Class.forName(clazz);
           }
  +        // we reached here because tcl was null or because of a
  +        // security exception, or because clazz could not be loaded...
  +        // In any case we now try one more time
  +        return Class.forName(clazz);
       }
   }
  
  
  
  1.4       +2 -1      
ws-wss4j/src/org/apache/ws/sandbox/security/trust/message/token/RequestedProofToken.java
  
  Index: RequestedProofToken.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/sandbox/security/trust/message/token/RequestedProofToken.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- RequestedProofToken.java  17 Aug 2005 16:48:53 -0000      1.3
  +++ RequestedProofToken.java  18 Aug 2005 13:54:38 -0000      1.4
  @@ -32,6 +32,7 @@
   import org.apache.ws.sandbox.security.trust.TrustConstants;
   import org.apache.ws.security.util.DOM2Writer;
   import org.apache.ws.security.util.WSSecurityUtil;
  +import org.apache.ws.security.util.Loader;
   import org.apache.xml.security.encryption.XMLCipher;
   import org.apache.xml.security.encryption.XMLEncryptionException;
   import org.apache.xml.security.keys.KeyInfo;
  @@ -123,7 +124,7 @@
           if (callback != null) {
               Class cbClass = null;
               try {
  -                cbClass = java.lang.Class.forName(callback);
  +                cbClass = Loader.loadClass(callback);
               } catch (ClassNotFoundException e) {
                   throw new 
WSSecurityException(WSSecurityException.FAILED_ENC_DEC,
                           "RequestedProofToken: cannot load password callback 
class: "
  
  
  
  1.2       +1 -1      
ws-wss4j/src/org/apache/ws/security/saml/SAMLIssuerFactory.java
  
  Index: SAMLIssuerFactory.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/security/saml/SAMLIssuerFactory.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SAMLIssuerFactory.java    12 Aug 2004 04:18:38 -0000      1.1
  +++ SAMLIssuerFactory.java    18 Aug 2005 13:54:38 -0000      1.2
  @@ -109,7 +109,7 @@
           SAMLIssuer samlIssuer = null;
           try {
               // instruct the class loader to load the crypto implementation
  -            samlIssuerClass = java.lang.Class.forName(samlClassName);
  +            samlIssuerClass = Loader.loadClass(samlClassName);
           } catch (ClassNotFoundException e) {
               throw new RuntimeException(samlClassName + " Not Found");
           }
  
  
  
  1.6       +4 -3      
ws-wss4j/src/org/apache/ws/sandbox/security/trust/STSManager.java
  
  Index: STSManager.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/sandbox/security/trust/STSManager.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- STSManager.java   17 Aug 2005 16:48:53 -0000      1.5
  +++ STSManager.java   18 Aug 2005 13:54:39 -0000      1.6
  @@ -19,6 +19,7 @@
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   import org.apache.ws.security.WSSecurityException;
  +import org.apache.ws.security.util.Loader;
   import org.apache.ws.sandbox.security.trust.issue.STIssuer;
   import org.apache.ws.sandbox.security.trust.message.Info.RequestInfo;
   import org.apache.ws.sandbox.security.trust.renew.STRenewer;
  @@ -110,7 +111,7 @@
               //Create the instance of the issue/renew/validate class  
               Class wClass = null;
               try {
  -                wClass = java.lang.Class.forName(issuerClassName);
  +                wClass = Loader.loadClass(issuerClassName);
               } catch (ClassNotFoundException e) {
                   throw new WSTrustException("STSManager: cannot load security 
token class: ",
                           e);
  @@ -146,7 +147,7 @@
               //Create the instance of the issue/renew/validate class  
               Class wClass = null;
               try {
  -                wClass = java.lang.Class.forName(renewerClassName);
  +                wClass = Loader.loadClass(renewerClassName);
               } catch (ClassNotFoundException e) {
                   throw new WSTrustException("STSManager: cannot load security 
token class: ",
                           e);
  @@ -180,7 +181,7 @@
               //Create the instance of the issue/renew/validate class  
               Class wClass = null;
               try {
  -                wClass = java.lang.Class.forName(validatorClassName);
  +                wClass = Loader.loadClass(validatorClassName);
               } catch (ClassNotFoundException e) {
                   throw new WSTrustException("STSManager: cannot load security 
token class: ",
                           e);
  
  
  
  1.5       +1 -1      
ws-wss4j/src/org/apache/ws/sandbox/security/trust/TrustEngine.java
  
  Index: TrustEngine.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/sandbox/security/trust/TrustEngine.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- TrustEngine.java  17 Aug 2005 16:48:53 -0000      1.4
  +++ TrustEngine.java  18 Aug 2005 13:54:39 -0000      1.5
  @@ -181,7 +181,7 @@
           STVerifier verifier = null;
           Class verfierClass = null;
           try {
  -            verfierClass = Class.forName(className);
  +            verfierClass = Loader.loadClass(className);
               Class[] classes = new Class[]{Properties.class};
               Constructor c = verfierClass.getConstructor(classes);
               verifier = (STVerifier) c.newInstance(new Object[]{properties});
  
  
  
  1.4       +3 -2      
ws-wss4j/src/org/apache/ws/security/handler/WSHandler.java
  
  Index: WSHandler.java
  ===================================================================
  RCS file: 
/home/cvs/ws-wss4j/src/org/apache/ws/security/handler/WSHandler.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- WSHandler.java    17 Aug 2005 22:10:09 -0000      1.3
  +++ WSHandler.java    18 Aug 2005 13:54:39 -0000      1.4
  @@ -37,6 +37,7 @@
   import org.apache.ws.security.util.StringUtil;
   import org.apache.ws.security.util.WSSecurityUtil;
   import org.apache.ws.security.util.XmlSchemaDateFormat;
  +import org.apache.ws.security.util.Loader;
   import org.apache.xml.security.signature.XMLSignature;
   import org.opensaml.SAMLAssertion;
   import org.w3c.dom.Document;
  @@ -554,7 +555,7 @@
           Class cbClass = null;
           CallbackHandler cbHandler = null;
           try {
  -            cbClass = Class.forName(callback);
  +            cbClass = Loader.loadClass(callback);
           } catch (ClassNotFoundException e) {
               throw new WSSecurityException("WSHandler: cannot load password 
callback class: "
                       + callback,
  @@ -759,7 +760,7 @@
           if (callback != null) {
               Class cbClass = null;
               try {
  -                cbClass = java.lang.Class.forName(callback);
  +                cbClass = Loader.loadClass(callback);
               } catch (ClassNotFoundException e) {
                   throw new WSSecurityException("WSHandler: cannot load 
password callback class: "
                           + callback,
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to