You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Matthew Lohbihler <ml...@serotoninsoftware.com> on 2014/03/06 01:34:49 UTC
SSL testing
How can i configure a client to trust all certificates for testing WS
under SSL? I'm using CXF 3.0.0m2, and the examples i've found appear
obsolete. Are there updated examples somewhere?
Many thanks,
Matthew
Re: SSL testing
Posted by Matthew Lohbihler <ml...@serotoninsoftware.com>.
Thank you Freeman! Note that i couldn't find the classes SOAPService and
Greeter, but was able to use ClientProxyFactoryBean for the same
purpose. The key was this:
HTTPConduit httpConduit = (HTTPConduit)
((org.apache.cxf.endpoint.Client) client).getConduit();
I didn't know where the conduit came from. The rest of your code matched
that from the previous CXF version. Below is the code that i got working.
Again, many thanks,
Matthew
ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
// factory.setAddress("http://localhost:9000/ota");
factory.setAddress("https://localhost:9001/ota");
OTAEndpoint client = factory.create(OTAEndpoint.class);
HTTPConduit httpConduit = (HTTPConduit)
((org.apache.cxf.endpoint.Client) client).getConduit();
TLSClientParameters params = httpConduit.getTlsClientParameters();
if (params == null) {
params = new TLSClientParameters();
httpConduit.setTlsClientParameters(params);
}
params.setTrustManagers(new TrustManager[] { new
X509TrustManager() {
@Override
public java.security.cert.X509Certificate[]
getAcceptedIssuers() {
return null;
}
@Override
public void
checkServerTrusted(java.security.cert.X509Certificate[] chain, String
authType)
throws CertificateException {
// no op
}
@Override
public void
checkClientTrusted(java.security.cert.X509Certificate[] chain, String
authType)
throws CertificateException {
// no op
}
} });
params.setDisableCNCheck(true);
On 3/6/2014 3:20 AM, Freeman Fang wrote:
> Hi,
>
> You need a dummy TrustManager which can bypass the Certificate check
> Some code like
> SOAPService service = new SOAPService(url, SOAPService.SERVICE);
>
> assertNotNull("Service is null", service);
>
> final Greeter port = service.getHttpsPort();
>
> assertNotNull("Port is null", port);
>
>
> BindingProvider provider = (BindingProvider)port;
>
> provider.getRequestContext().put(
>
> BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
>
> address);
>
> Client client = ClientProxy.getClient(port);
>
> HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
>
> TrustManager[] trustAllCerts = new TrustManager[] {
>
> new X509TrustManager() {
>
>
> public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
>
> }
>
>
> public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
>
> }
>
>
> public java.security.cert.X509Certificate[] getAcceptedIssuers() {
>
> return null;
>
> }
>
>
> }
>
> };
>
>
> TLSClientParameters tlsParams = new TLSClientParameters();
>
>
> tlsParams.setTrustManagers(trustAllCerts);
>
>
>
> tlsParams.setDisableCNCheck(true);
>
> httpConduit.setTlsClientParameters(tlsParams);
>
> assertEquals(port.greetMe("Kitty"), "Hello Kitty");
>
> -------------
> Freeman(Yue) Fang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
>
>
>
> On 2014-3-6, at 上午8:34, Matthew Lohbihler wrote:
>
>> How can i configure a client to trust all certificates for testing WS under SSL? I'm using CXF 3.0.0m2, and the examples i've found appear obsolete. Are there updated examples somewhere?
>>
>> Many thanks,
>> Matthew
>>
>
Re: SSL testing
Posted by Freeman Fang <fr...@gmail.com>.
Hi,
You need a dummy TrustManager which can bypass the Certificate check
Some code like
SOAPService service = new SOAPService(url, SOAPService.SERVICE);
assertNotNull("Service is null", service);
final Greeter port = service.getHttpsPort();
assertNotNull("Port is null", port);
BindingProvider provider = (BindingProvider)port;
provider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
address);
Client client = ClientProxy.getClient(port);
HTTPConduit httpConduit = (HTTPConduit) client.getConduit();
TrustManager[] trustAllCerts = new TrustManager[] {
new X509TrustManager() {
public void checkClientTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
public void checkServerTrusted(java.security.cert.X509Certificate[] certs, String authType) {
}
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
return null;
}
}
};
TLSClientParameters tlsParams = new TLSClientParameters();
tlsParams.setTrustManagers(trustAllCerts);
tlsParams.setDisableCNCheck(true);
httpConduit.setTlsClientParameters(tlsParams);
assertEquals(port.greetMe("Kitty"), "Hello Kitty");
-------------
Freeman(Yue) Fang
Red Hat, Inc.
FuseSource is now part of Red Hat
On 2014-3-6, at 上午8:34, Matthew Lohbihler wrote:
> How can i configure a client to trust all certificates for testing WS under SSL? I'm using CXF 3.0.0m2, and the examples i've found appear obsolete. Are there updated examples somewhere?
>
> Many thanks,
> Matthew
>