You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jmeter-dev@jakarta.apache.org by se...@apache.org on 2007/02/03 20:58:07 UTC
svn commit: r503296 -
/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java
Author: sebb
Date: Sat Feb 3 11:58:07 2007
New Revision: 503296
URL: http://svn.apache.org/viewvc?view=rev&rev=503296
Log:
Add HttpClient socket setup
Modified:
jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java
Modified: jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java
URL: http://svn.apache.org/viewvc/jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java?view=diff&rev=503296&r1=503295&r2=503296
==============================================================================
--- jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java (original)
+++ jakarta/jmeter/branches/rel-2-2/src/core/org/apache/jmeter/util/JsseSSLManager.java Sat Feb 3 11:58:07 2007
@@ -28,6 +28,8 @@
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
+import org.apache.commons.httpclient.protocol.Protocol;
+import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.apache.jmeter.util.keystore.JmeterKeyStore;
import org.apache.jorphan.logging.LoggingManager;
import org.apache.log.Logger;
@@ -69,8 +71,7 @@
private Provider pro = null;
/**
- * Private Constructor to remove the possibility of directly instantiating
- * this object. Create the SSLContext, and wrap all the X509KeyManagers with
+ * Create the SSLContext, and wrap all the X509KeyManagers with
* our X509KeyManager so that we can choose our alias.
*
* @param provider
@@ -84,7 +85,7 @@
}
this.getContext();
- log.info("JsseSSLManager installed");
+ log.debug("JsseSSLManager installed");
}
/**
@@ -95,8 +96,13 @@
*/
public void setContext(HttpURLConnection conn) {
if (conn instanceof HttpsURLConnection) {
- HttpsURLConnection secureConn = (HttpsURLConnection) conn;
- secureConn.setSSLSocketFactory(this.getContext().getSocketFactory());
+/*
+ * No point doing this on a per-connection basis, as there is currently no way to configure it.
+ * So we leave it to the defaults set up in the SSL Context
+ *
+ */
+// HttpsURLConnection secureConn = (HttpsURLConnection) conn;
+// secureConn.setSSLSocketFactory(this.getContext().getSocketFactory());
} else {
log.warn("Unexpected HttpURLConnection class: "+conn.getClass().getName());
}
@@ -139,7 +145,7 @@
JmeterKeyStore keys = this.getKeyStore();
managerFactory.init(null, this.defaultpw.toCharArray());
KeyManager[] managers = managerFactory.getKeyManagers();
- log.info(keys.getClass().toString());
+ log.debug(keys.getClass().toString());
for (int i = 0; i < managers.length; i++) {
if (managers[i] instanceof X509KeyManager) {
X509KeyManager manager = (X509KeyManager) managers[i];
@@ -148,15 +154,29 @@
}
TrustManager[] trusts = new TrustManager[] { new AlwaysTrustManager(this.getTrustStore()) };
context.init(managers, trusts, this.rand);
+
+ /*
+ * The following will need to be removed if the SSL properties are to be
+ * applied on a per-connection basis
+ */
HttpsURLConnection.setDefaultSSLSocketFactory(context.getSocketFactory());
HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
+ /*
+ * Also set up HttpClient defaults
+ */
+ Protocol protocol = new Protocol(
+ "https",
+ (ProtocolSocketFactory) new HttpClientSSLProtocolSocketFactory(context),
+ 443
+ );
+ Protocol.registerProtocol("https", protocol);
log.debug("SSL stuff all set");
} catch (Exception e) {
- log.error("Could not set up default SSL socket factory", e);
+ log.error("Could not set up SSLContext", e);
}
if (log.isDebugEnabled()){
---------------------------------------------------------------------
To unsubscribe, e-mail: jmeter-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jmeter-dev-help@jakarta.apache.org