Hi,
>From my test cases I have called sendXmlRestRequestHTTPS method [1] as in
[2]. Now it is working fine, since by passing hostname verification and
certificate validation logic is written inside the method [3].
Thanks for the help.

[1]
https://github.com/wso2-extensions/esb-integration-base/blob/master/src/main/java/org/wso2/connector/integration/test/base/ConnectorIntegrationTestBase.java#L662
[2] RestResponse<OMElement> apiRestResponse =
                sendXmlRestRequestHTTPS(apiEndpoint, "GET",
apiRequestHeadersMap, null,null,true);

    Assert.assertEquals(appContext,getValueByExpression("//id",
apiRestResponse.getBody()));
[3] ht
tps://github.com/wso2-extensions/esb-integration-base/blob/master/src/main/java/org/wso2/connector/integration/test/base/ConnectorIntegrationTestBase.java#L973


Thankyou,
Shevindi Rodrigo

On Thu, Jan 31, 2019 at 5:20 PM Tharindu Edirisinghe <[email protected]>
wrote:

> Hi Shevindi,
>
> I believe you are using -k option when running the curl command, which
> would avoid the certificate validation and hostname verification at client
> (curl) side.
>
> Since this is just a test, we can bypass hostname verification and
> certificate validation and get it to working. For that, we need to override
> the trust manager and the default hostname verifier and create the SSL
> Context which will be used for the HTTPS communication. You can find some
> sample code in [1].
>
> [1]
> https://github.com/wso2/carbon-identity-framework/blob/v5.12.153/components/authentication-framework/org.wso2.carbon.identity.application.authentication.endpoint.util/src/main/java/org/wso2/carbon/identity/application/authentication/endpoint/util/TenantMgtAdminServiceClient.java#L179
>
> Best Regards,
> Tharindu Edirisinghe
>
> On Thu, Jan 31, 2019 at 1:32 PM Shevindi Rodrigo <[email protected]>
> wrote:
>
>> Hi All,
>>
>> I'm working on splunk connector for EI. To access splunk rest API over
>> https, we have to import the self sign certificate. For that, I got the
>> certificate server.pem file from the installation directory of splunk and
>> import that certificate into the EI client-truststore using the keytool
>> command [1]. When I try this splunk connector via management console, it
>> working fine.
>> But to write the integration test cases, I import the same certificate
>> file into EI client-truststore and wso2carbon.jks as in [2] . In
>> integration test case, when I try to invoke the splunk api using java
>> client[4] as in [3], I'm getting the response as in [5]  although the same
>> apiEndpoint works fine with curl.
>>
>> Can anyone help me to solve this?
>>
>> [1] keytool -importcert -file server.pem -keystore client-truststore.jks
>> -alias splunk
>> [2]
>> keytool -importcert -file server.pem -keystore client-truststore.jks
>> -alias splunk
>> keytool -importcert -file server.pem -keystore wso2carbon.jks -alias
>> splunk2
>>
>> [3]
>> String apiEndpoint = "https://"; +
>> connectorProperties.getProperty("hostname") + ":" +
>> connectorProperties.getProperty("port") + "/servicesNS/" +
>> connectorProperties.getProperty("appUserName") + "/" +
>> connectorProperties.getProperty("appName") + "/saved/searches/" +
>> connectorProperties.getProperty("searchName");
>> RestResponse<OMElement> apiRestResponse =
>> sendXmlRestRequest(apiEndpoint,"GET",apiRequestHeadersMap);
>> Assert.assertEquals(searchName,getValueByExpression("//entry/title",
>> apiRestResponse.getBody()));
>>
>> [4]
>> https://github.com/wso2-extensions/esb-integration-base/blob/master/src/main/java/org/wso2/connector/integration/test/base/ConnectorIntegrationTestBase.java#L441
>> <https://www.google.com/url?q=https://github.com/wso2-extensions/esb-integration-base/blob/master/src/main/java/org/wso2/connector/integration/test/base/ConnectorIntegrationTestBase.java%23L441&sa=D&source=hangouts&ust=1548916323291000&usg=AFQjCNHyRrxk4i8gSaJ7A6gJOmMOLIoTKg>
>>
>> [5]
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *INFO  [org.wso2.esb.integration.common.utils.ESBTestCaseUtils] - splunk
>> Proxy undeployed in 0 millisFAILED: testCreateSavedSearchMandatory
>> splunk {createSavedSearch} integration test with mandatory
>> parameters.javax.net.ssl.SSLHandshakeException:
>> java.security.cert.CertificateException: No name matching localhost
>> found    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)    at
>> sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)    at
>> sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)    at
>> sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)    at
>> sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1506)
>> at
>> sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
>> at sun.security.ssl.Handshaker.processLoop(Handshaker.java:979)    at
>> sun.security.ssl.Handshaker.process_record(Handshaker.java:914)    at
>> sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)    at
>> sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
>> at
>> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
>> at
>> sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
>> at
>> sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
>> at
>> sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
>> at
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1512)
>> at
>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1440)
>> at
>> java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
>> at
>> sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)
>> at
>> org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.readResponse(ConnectorIntegrationTestBase.java:1073)
>> at
>> org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.sendXmlRestRequest(ConnectorIntegrationTestBase.java:630)
>> at
>> org.wso2.connector.integration.test.base.ConnectorIntegrationTestBase.sendXmlRestRequest(ConnectorIntegrationTestBase.java:444)
>> at
>> org.wso2.carbon.connector.integration.test.splunk.SplunkConnectorIntegrationTest.testCreateSavedSearchMandatory(SplunkConnectorIntegrationTest.java:97)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:497)    at
>> org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)
>> at org.testng.internal.Invoker.invokeMethod(Invoker.java:673)    at
>> org.testng.internal.Invoker.invokeTestMethod(Invoker.java:842)    at
>> org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1166)    at
>> org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
>> at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
>> at org.testng.TestRunner.runWorkers(TestRunner.java:1178)    at
>> org.testng.TestRunner.privateRun(TestRunner.java:757)    at
>> org.testng.TestRunner.run(TestRunner.java:608)    at
>> org.testng.SuiteRunner.runTest(SuiteRunner.java:334)    at
>> org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)    at
>> org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)    at
>> org.testng.SuiteRunner.run(SuiteRunner.java:240)    at
>> org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)    at
>> org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)    at
>> org.testng.TestNG.runSuitesSequentially(TestNG.java:1158)    at
>> org.testng.TestNG.runSuitesLocally(TestNG.java:1083)    at
>> org.testng.TestNG.run(TestNG.java:999)    at
>> org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:178)
>> at
>> org.apache.maven.surefire.testng.TestNGXmlTestSuite.execute(TestNGXmlTestSuite.java:92)
>> at
>> org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:96)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at
>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>> at java.lang.reflect.Method.invoke(Method.java:497)    at
>> org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
>> at
>> org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
>> at
>> org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
>> at
>> org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
>> at
>> org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)Caused
>> by: java.security.cert.CertificateException: No name matching localhost
>> found    at
>> sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:221)    at
>> sun.security.util.HostnameChecker.match(HostnameChecker.java:95)    at
>> sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:455)
>> at
>> sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:436)
>> at
>> sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:200)
>> at
>> sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
>> at
>> sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1488)
>> ... 51 more*
>>
>>
>>
>> Thanks,
>> Shevindi Rodrigo.
>> --
>> Shevindi Rodrigo
>> Intern
>> 0715945303,0710388867
>>
>
>
> --
>
> Tharindu Edirisinghe
> Associate Technical Lead | WSO2 Inc
> Platform Security Team
> Blog : http://tharindue.blogspot.com
> mobile : +94 775181586
>


-- 
Shevindi Rodrigo
Intern
0715945303,0710388867
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to