hi,
I'm creating a client with ssl certificate.
using this code:
((BindingProvider)
port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
interfaceParameters.getUrl());
Client client =
ClientProxy.getClient(port);
HTTPConduit httpConduit = (HTTPConduit)
((org.apache.cxf.endpoint.Client) client).getConduit();
SSLClientParameters sParams = new SSLClientParameters();
sParams.setTrustpass("test");//set keystore password
sParams.setfileName("test.jks");
httpConduit.setTlsClientParameters(sParams.getTLSClientParameters());
/*sParams is :*/
public TLSClientParameters getTLSClientParameters() {
TLSClientParameters tlsParams = new TLSClientParameters();
SSLContext context = getSSlContext();
tlsParams.setSSLSocketFactory(context.getSocketFactory());
return tlsParams;
}
private SSLContext getSSlContext() {
SSLContext sslContext = null;
try {
String filePath = "c:/temp/";
filePath = filePath + fileName;
File pKeyFile = new File(filePath);
String pKeyPassword = trustpass;
KeyManagerFactory keyManagerFactory =
KeyManagerFactory.getInstance("SunX509");
// Depends on the format that the keystore was created
(currently
// JKS format)
KeyStore keyStore = KeyStore.getInstance("JKS");
// Loading the keystore from disk to object
InputStream keyInput = new FileInputStream(pKeyFile);
keyStore.load(keyInput, pKeyPassword.toCharArray());
keyInput.close();
keyManagerFactory.init(keyStore,
pKeyPassword.toCharArray());
TrustManager[] trustManagers = null;
trustManagers = getTrustedManagers();
sslContext = SSLContext.getInstance("TLS");
sslContext.init(keyManagerFactory.getKeyManagers(),
trustManagers, new
SecureRandom());
}
catch (Exception e) {
e.printStackTrace();
}
System.out.println("> sslContext: " + sslContext);
return sslContext;
}
when I'm running this client it works fine for the first call, but the other
calls failed with read time out.
when I'm waiting -stopping the code (by breakpoint), if I'm waiting till I
see this :
Keep-Alive-Timer, called close()
Keep-Alive-Timer, called closeInternal(true)
Keep-Alive-Timer, SEND TLSv1 ALERT: warning, description = close_notify
Keep-Alive-Timer, WRITE: TLSv1 Alert, length = 32
Keep-Alive-Timer, called closeSocket(selfInitiated)
and then go on, the next call again works fine:).
it's look like that I have to increase the time out for this.
any idea about it?
thanks in advance!
--
View this message in context:
http://cxf.547215.n5.nabble.com/how-to-set-Keep-Alive-client-using-ssl-tp5765983.html
Sent from the cxf-user mailing list archive at Nabble.com.