2016-03-01 2 views
0

Я новичок в Jboss и использую простой клиент для подключения в моем коде jboss. Ниже приведен код -Как обойти выдачу сертификатов SSL в JBOSS REST ClientRequest

--- 
import org.jboss.resteasy.client.ClientRequest; 
import org.jboss.resteasy.client.ClientResponse; 
--- 
public String login() throws Exception { 
--- 
    String URL = "https://IP//service/perform.do?operationId=XXXXX"; 
    ClientRequest restClient = new ClientRequest(URL); 
    restClient.accept(MediaType.APPLICATION_JSON); 
    restClient.body(MediaType.APPLICATION_JSON, hmap); 
    ClientResponse <String> resp = restClient.post(String.class); 
    if (resp.getStatus() != 201) { 
     throw new RuntimeException("Failed : HTTPS error code : " + resp.getStatus()); 
    } 
    BufferedReader br = new BufferedReader(new InputStreamReader(
     new ByteArrayInputStream(resp.getEntity().getBytes()))); 
    String output; 
    System.out.println("Output from Server .... \n"); 
    while ((output = br.readLine()) != null) { 
     System.out.println(output); 
    } 
    return output; 
} 

При подключении с SSL включен сервер, получив сообщение об ошибке сертификата «HTTP Status 500 - org.jboss.resteasy.spi.UnhandledException: javax.net.ssl.SSLException: имя хоста в сертификате Ждут» t match ".

В настоящий момент мы не можем изменить сертификат, но есть ли способ доверять любому сертификату? Я googled много сообщений, но ничего не помогло.

Любой может сказать мне, что является решением этой проблемы.

+0

Я получил решение –

ответ

0

Я получил решение ниже:

public static void trustAllCertificates() throws NoSuchAlgorithmException, KeyManagementException 
    { 
     // Create a trust manager that does not validate certificate chains 
     TrustManager[] trustAllCerts = new TrustManager[] {new X509TrustManager() { 
       public java.security.cert.X509Certificate[] getAcceptedIssuers() { 
        return null; 
       } 
       public void checkClientTrusted(X509Certificate[] certs, String authType) { 
       } 
       public void checkServerTrusted(X509Certificate[] certs, String authType) { 
       } 
      } 
     }; 

     // Install the all-trusting trust manager 
     SSLContext sc = SSLContext.getInstance("SSL"); 
     sc.init(null, trustAllCerts, new java.security.SecureRandom()); 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 

     // Create all-trusting host name verifier 
     HostnameVerifier allHostsValid = new HostnameVerifier() { 
      public boolean verify(String hostname, SSLSession session) { 
       return true; 
      } 
     }; 

     HttpsURLConnection.setDefaultHostnameVerifier(allHostsValid); 
    } 
Смежные вопросы