This is an automated email from the ASF dual-hosted git repository.

csantanapr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-openwhisk-cli.git

commit 28fcb93c0f574076e9e951f7e1531d32c0ee10de
Author: Chetan Mehrotra <[email protected]>
AuthorDate: Fri Dec 14 11:17:11 2018 +0530

    Inline SSL context logic as to avoid loading of https config
---
 tests/src/test/scala/system/basic/HttpProxy.scala       | 17 ++++++++++++++---
 .../test/scala/system/basic/WskCliActivationTests.scala |  1 +
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/tests/src/test/scala/system/basic/HttpProxy.scala 
b/tests/src/test/scala/system/basic/HttpProxy.scala
index 98b9a55..c0aa0e8 100644
--- a/tests/src/test/scala/system/basic/HttpProxy.scala
+++ b/tests/src/test/scala/system/basic/HttpProxy.scala
@@ -17,14 +17,16 @@
 package system.basic
 import java.net.ServerSocket
 
-import akka.http.scaladsl.Http
+import akka.http.scaladsl.{Http, HttpsConnectionContext}
 import akka.http.scaladsl.model.{HttpRequest, HttpResponse, Uri}
 import akka.http.scaladsl.model.Uri.Authority
 import akka.http.scaladsl.server.Route
 import akka.stream.ActorMaterializer
 import akka.stream.scaladsl.{Sink, Source}
+import com.typesafe.sslconfig.akka.AkkaSSLConfig
 import common.{WskActorSystem, WskProps}
-import common.rest.SSL
+import common.rest.{AcceptAllHostNameVerifier, SSL}
+import javax.net.ssl.HostnameVerifier
 import org.scalatest.Suite
 import org.scalatest.concurrent.ScalaFutures
 
@@ -85,12 +87,21 @@ trait HttpProxy extends WskActorSystem with ScalaFutures {
       Http(actorSystem).outgoingConnectionHttps(
         uri.authority.host.address(),
         uri.effectivePort,
-        connectionContext = SSL.httpsConnectionContext)
+        connectionContext = httpsConnectionContext())
     } else {
       Http(actorSystem).outgoingConnection(uri.authority.host.address(), 
uri.effectivePort)
     }
   }
 
+  private def httpsConnectionContext() = {
+    val sslConfig = AkkaSSLConfig().mapSettings { s =>
+      
s.withHostnameVerifierClass(classOf[AcceptAllHostNameVerifier].asInstanceOf[Class[HostnameVerifier]])
+    }
+    //SSL.httpsConnectionContext initializes config which is not there in cli 
test
+    //So inline the flow as we do not need client auth for this case
+    new HttpsConnectionContext(SSL.nonValidatingContext(false), 
Some(sslConfig))
+  }
+
   private def proxyRequest(req: HttpRequest, uri: Uri): HttpRequest = {
     //https://github.com/akka/akka-http/issues/64
     req
diff --git a/tests/src/test/scala/system/basic/WskCliActivationTests.scala 
b/tests/src/test/scala/system/basic/WskCliActivationTests.scala
index 7eb8765..f840c3e 100644
--- a/tests/src/test/scala/system/basic/WskCliActivationTests.scala
+++ b/tests/src/test/scala/system/basic/WskCliActivationTests.scala
@@ -60,6 +60,7 @@ class WskCliActivationTests extends TestHelpers with 
WskTestHelpers with HttpPro
         println(s"Running poll for $pollDuration")
 
         val consoleFuture = Future {
+          //pass the `proxyProps` such that calls from poll cli command go via 
our proxy
           wsk.activation.console(pollDuration, actionName = 
Some(name))(proxyProps)
         }
 

Reply via email to