2017-02-14 5 views
0

RESTAssuredを使用してHTTPSコールを作成しようとしています。私は.pfx証明書を使用しています。しかし、コールはハンドシェイクの失敗で終了しています。以下は私が使用しているコードです。RESTAssured - httpsコールの.pfx証明書を使用します。

FileInputStream instream1=null; 
    FileInputStream instream2=null; 
    KeyStore trustStore=null; 
    KeyStore keyStore=null; 


    instream1 = new FileInputStream(new File(keystore)); 
    keyStore = KeyStore.getInstance("PKCS12"); 
    keyStore.load(instream1, keystorepwd.toCharArray()); 

    instream2 = new FileInputStream (new File(truststore)); 
    trustStore = KeyStore.getInstance("jks"); 
    trustStore.load(instream2, truststorepwd.toCharArray()); 

    X509HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; 
    org.apache.http.conn.ssl.SSLSocketFactory lSchemeSocketFactory=null; 
    lSchemeSocketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, keystorepwd); 
    lSchemeSocketFactory.setHostnameVerifier(hostnameVerifier); 
    RestAssured.config = RestAssured.config().sslConfig(new SSLConfig().with().sslSocketFactory(lSchemeSocketFactory).and().allowAllHostnames()); 

    response = RestAssured.given() 
      .relaxedHTTPSValidation() 
      .contentType("application/json") 
      .header("Accept-Encoding","gzip,deflate") 
      .body(\\body) 
    .post() 
    .then().log().all() 
    .assertThat().statusCode(201) 
    .assertThat().extract().response(); 

答えて

0

小さな修正を加えて問題を解決できました。

FileInputStream instream1=null; 
KeyStore keyStore=null; 


instream1 = new FileInputStream(new File(keystore)); 
keyStore = KeyStore.getInstance("PKCS12"); 
keyStore.load(instream1, keystorepwd.toCharArray()); 

X509HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER; 
org.apache.http.conn.ssl.SSLSocketFactory lSchemeSocketFactory=null; 
lSchemeSocketFactory = new org.apache.http.conn.ssl.SSLSocketFactory(keyStore, keystorepwd); 
lSchemeSocketFactory.setHostnameVerifier(hostnameVerifier); 
RestAssured.config = RestAssured.config().sslConfig(new SSLConfig().with().sslSocketFactory(lSchemeSocketFactory).and().allowAllHostnames()); 

response = RestAssured.given() 
     .relaxedHTTPSValidation() 
     .contentType("application/json") 
     .header("Accept-Encoding","gzip,deflate") 
     .body(\\body) 
.post() 
.then().log().all() 
.assertThat().statusCode(201) 
.assertThat().extract().response(); 
関連する問題