You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ni...@apache.org on 2013/10/28 10:07:51 UTC
svn commit: r1536288 - in /cxf/branches/2.7.x-fixes: ./
rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
Author: ningjiang
Date: Mon Oct 28 09:07:51 2013
New Revision: 1536288
URL: http://svn.apache.org/r1536288
Log:
Merged revisions 1535671 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1535671 | ningjiang | 2013-10-25 18:02:05 +0800 (Fri, 25 Oct 2013) | 1 line
CXF-5333 Supported to set the TLSClientParameters dynamically
........
Modified:
cxf/branches/2.7.x-fixes/ (props changed)
cxf/branches/2.7.x-fixes/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
cxf/branches/2.7.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Merged /cxf/trunk:r1535671
Propchange: cxf/branches/2.7.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.7.x-fixes/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java?rev=1536288&r1=1536287&r2=1536288&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java (original)
+++ cxf/branches/2.7.x-fixes/rt/transports/http-hc/src/main/java/org/apache/cxf/transport/http/asyncclient/AsyncHTTPConduit.java Mon Oct 28 09:07:51 2013
@@ -446,10 +446,7 @@ public class AsyncHTTPConduit extends UR
entity.removeHeaders("Content-Type");
entity.setEntity(null);
}
- if (url.getScheme().equals("https") && tlsClientParameters == null) {
- tlsClientParameters = new TLSClientParameters();
- }
-
+
BasicHttpContext ctx = new BasicHttpContext();
if (AsyncHTTPConduit.this.proxyAuthorizationPolicy != null
&& AsyncHTTPConduit.this.proxyAuthorizationPolicy.getUserName() != null) {
@@ -473,7 +470,16 @@ public class AsyncHTTPConduit extends UR
reg.register(new AsyncScheme("http", 80, null));
if ("https".equals(url.getScheme())) {
try {
- final SSLContext sslcontext = getSSLContext();
+ // check tlsClientParameters from message header
+ TLSClientParameters tlsClientParameters = outMessage.get(TLSClientParameters.class);
+ if (tlsClientParameters == null) {
+ tlsClientParameters = getTlsClientParameters();
+ }
+ if (tlsClientParameters == null) {
+ tlsClientParameters = new TLSClientParameters();
+ }
+
+ final SSLContext sslcontext = getSSLContext(tlsClientParameters);
reg.register(new AsyncScheme("https", 443, new SSLLayeringStrategy(sslcontext) {
@Override
protected void initializeEngine(SSLEngine engine) {
@@ -797,11 +803,8 @@ public class AsyncHTTPConduit extends UR
}
- public synchronized SSLContext getSSLContext() throws GeneralSecurityException {
- TLSClientParameters tlsClientParameters = getTlsClientParameters();
- if (tlsClientParameters == null) {
- tlsClientParameters = new TLSClientParameters();
- }
+ public synchronized SSLContext getSSLContext(TLSClientParameters tlsClientParameters) throws GeneralSecurityException {
+
int hash = tlsClientParameters.hashCode();
if (hash == lastTlsHash) {
return sslContext;
Modified: cxf/branches/2.7.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.7.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java?rev=1536288&r1=1536287&r2=1536288&view=diff
==============================================================================
--- cxf/branches/2.7.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java (original)
+++ cxf/branches/2.7.x-fixes/rt/transports/http/src/main/java/org/apache/cxf/transport/http/URLConnectionHTTPConduit.java Mon Oct 28 09:07:51 2013
@@ -32,6 +32,7 @@ import java.net.URLConnection;
import java.util.logging.Level;
import org.apache.cxf.Bus;
+import org.apache.cxf.configuration.jsse.TLSClientParameters;
import org.apache.cxf.helpers.IOUtils;
import org.apache.cxf.io.CacheAndWriteOutputStream;
import org.apache.cxf.message.Message;
@@ -91,7 +92,12 @@ public class URLConnectionHTTPConduit ex
URL url = uri.toURL();
Proxy proxy = proxyFactory.createProxy(csPolicy , uri);
message.put("http.scheme", uri.getScheme());
- return connectionFactory.createConnection(tlsClientParameters, proxy, url);
+ // check tlsClientParameters from message header
+ TLSClientParameters clientParameters = message.get(TLSClientParameters.class);
+ if (clientParameters == null) {
+ clientParameters = tlsClientParameters;
+ }
+ return connectionFactory.createConnection(clientParameters, proxy, url);
}
protected void setupConnection(Message message, URI currentURL, HTTPClientPolicy csPolicy) throws IOException {
HttpURLConnection connection = createConnection(message, currentURL, csPolicy);