Search code examples
restsslhttpsresteasy

Does RESTeasy client support TLS/SSL?


I'm using several RESTful webservice in JAVA based web-application. I'm using the RESTeasy client to access my webservice. Here all communication between the client and service is through XML(JAX-B xml annotated detail classes). Here are the following codes

String serviceURL  = "https://service.company.com/Service/getService"

ServiceRequestDetail serviceRequestDetail = getServiceRequestAsDetailClass();
ServiceResponseDetail serviceResponseDetail = new ServiceResponseDetail();
ClientRequest clientRequest = new ClientRequest(serviceURL);
clientRequest.accept(MediaType.APPLICATION_XML);   
clientRequest.body(MediaType.APPLICATION_XML, serviceRequestDetail);
ClientResponse<ServiceRequestDetail> response =
  clientRequest.post(ServiceRequestDetail.class);

if (response.getStatus() != 200) {
  throw new RuntimeException("Failed : HTTP error code : " + 
                             response.getStatus());
}

ServiceResponseDetail serviceResponseDetail =
  response.getEntity(ServiceResponseDetail.class);

and when I try to access my service I get the "Peer not Authenticated" error

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
...

Is there any way to add the SSL configuration details in the RESTeasy client? any other suggestions for solving this issue is also welcome

Thanks in advance


Solution

  • I found out the answer but I'm really sorry for the late response.

    To answer my question, RESTeasy client does support TLS/SSL. Infact the problem was I missed to install the certificate into the JVM.

    keytool -import -alias <Replace certificate Alias name> -keystore $JAVA_HOME\jre\lib\security\cacerts -file <Replace your Certificate file location>
    

    This solved the issue of "Peer Not Authenticated". Hope it helps. Kudos