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]