protected void configureHttpConduit(HTTPConduit httpConduit) { if (isSecure()) { TLSClientParameters tlsClientParameters = httpConduit.getTlsClientParameters(); // If no TLSClientParameters are configured and no custom SslContext is configured, we use the system default // otherwise we overwrite TLSClientParameters if a custom SslContext is configured if (tlsClientParameters == null) { tlsClientParameters = new TLSClientParameters(); maybeUpdateSslContext(tlsClientParameters, true); } else { maybeUpdateSslContext(tlsClientParameters, false); } if (getHostnameVerifier() != null) { tlsClientParameters.setHostnameVerifier(getHostnameVerifier()); } httpConduit.setTlsClientParameters(tlsClientParameters); } if (getUsername() != null) { AuthorizationPolicy authorizationPolicy = new AuthorizationPolicy(); authorizationPolicy.setUserName(getUsername()); authorizationPolicy.setPassword(getPassword()); httpConduit.setAuthorization(authorizationPolicy); } }
private void maybeUpdateSslContext(TLSClientParameters tlsClientParameters, boolean useDefaultSocketFactory) { if (getSslContext() == null) { if (useDefaultSocketFactory) { tlsClientParameters.setUseHttpsURLConnectionDefaultSslSocketFactory(true); } } else { tlsClientParameters.setSSLSocketFactory(getSslContext().getSocketFactory()); } } }
public WsSecurityInformation getSecurityInformation() { SSLContextParameters sslContextParameters = getSslContextParameters(); if (sslContextParameters == null && secure) { Map<String, SSLContextParameters> sslContextParameterMap = getCamelContext().getRegistry().findByTypeWithName(SSLContextParameters.class); if (sslContextParameterMap.size() == 1) { Map.Entry<String, SSLContextParameters> entry = sslContextParameterMap.entrySet().iterator().next(); sslContextParameters = entry.getValue(); } else if (sslContextParameterMap.size() > 1) { throw new AmbiguousBeanException(SSLContextParameters.class); } } try { SSLContext sslContext = sslContextParameters != null ? sslContextParameters.createSSLContext(getCamelContext()) : null; return new WsSecurityInformation(secure, sslContext, hostnameVerifier, username, password); } catch (Exception e) { throw new RuntimeCamelException(e); } }