Hi All,
I'm new to camel. Plese suggest me how Ican change this class into camel
route xml. Plese give me suggestions
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import javax.inject.Named;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
public class RequestResponseIml implements RequestResponse {
@Value(value = "${proxy.host}")
private String proxyHost;
@Value(value = "${proxy.port}")
private String proxyPort;
@Value(value = "${SSL_CONTEXT}")
private String ssl_context_version;
public String invokeAction(String url, String token) throws Exception {
SSLContext sslcontext = null;
String response = "";
try {
sslcontext =
SSLContext.getInstance(ssl_context_version);
sslcontext.init(new KeyManager[0], new TrustManager[] {
new
TrustManager() }, new SecureRandom());
} catch (NoSuchAlgorithmException e) {
logger.info("Error NoSuchAlgorithmException " +
e.getLocalizedMessage());
} catch (KeyManagementException e) {
logger.info("Error KeyManagementException " +
e.getLocalizedMessage());
} catch (Exception e) {
logger.error("Exception in getting Instance of
SSLContext: " +
e.toString());
throw e;
}
try {
SSLSocketFactory factory =
sslcontext.getSocketFactory();
logger.info("Creating HttpsURLConnection");
HttpsURLConnection connection = null;
InputStream is = null;
Proxy proxy = new Proxy(Proxy.Type.HTTP, new
InetSocketAddress(proxyHost,
Integer.parseInt(proxyPort)));
connection = (HttpsURLConnection) new
URL(url).openConnection(proxy);
logger.info("HttpsURLConnection has created
"+connection);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Length", "" +
Integer.toString(token.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setSSLSocketFactory(factory);
logger.info("connection setSSLSocketFactory");
connection.setHostnameVerifier(new HostnameVerifier());
logger.info("connection setHostnameVerifier");
OutputStream os = connection.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
osw.write(token);
osw.flush();
osw.close();
is =connection.getInputStream();
BufferedReader in = new BufferedReader(new
InputStreamReader(is));
response = in.readLine();
logger.info("Output from NSDL "+response);
is.close();
in.close();
} catch (UnsupportedEncodingException e) {
String encodeException = "Unsupported Encoding
Exception - " +
e.getMessage();
logger.error(encodeException);
} catch(Exception e) {
logger.info("Error in invokeAction - " +
e.getLocalizedMessage());
logger.info("Error in invokeAction StactTrace - " +
e.getStackTrace());
//e.printStackTrace();
}
return response;
}
public static class TrustManager implements X509TrustManager {
public boolean isClientTrusted(X509Certificate cert[]) {
return true;
}
public boolean isServerTrusted(X509Certificate cert[]) {
return true;
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0];
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String
arg1) throws
CertificateException {
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String
arg1) throws
CertificateException {
}
}
public static class HostnameVerifier implements HostnameVerifier {
@Override
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
public boolean verify(String urlHostname, String certHostname) {
return true;
}
}
}
--
View this message in context:
http://camel.465427.n5.nabble.com/Camel-with-SSL-and-HostNameVerifier-tp5799349.html
Sent from the Camel - Users mailing list archive at Nabble.com.