From b0ffd785eafae1f036402a49d83cc968439533fe Mon Sep 17 00:00:00 2001 From: Kent Yao Date: Sat, 30 Jun 2018 18:05:47 +0800 Subject: [PATCH] add ut plain sasl --- .../kyuubi/auth/PlainSaslServerSuite.scala | 48 ++++++++++++++++++- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/kyuubi-server/src/test/scala/yaooqinn/kyuubi/auth/PlainSaslServerSuite.scala b/kyuubi-server/src/test/scala/yaooqinn/kyuubi/auth/PlainSaslServerSuite.scala index 89c9816fa..e36c68062 100644 --- a/kyuubi-server/src/test/scala/yaooqinn/kyuubi/auth/PlainSaslServerSuite.scala +++ b/kyuubi-server/src/test/scala/yaooqinn/kyuubi/auth/PlainSaslServerSuite.scala @@ -34,8 +34,6 @@ class PlainSaslServerSuite extends SparkFunSuite { test("Sasl Plain Server Factory ") { val saslPlainServerFactory = new auth.PlainSaslServer.SaslPlainServerFactory - val tTransportFactory = PlainSaslHelper.getTransportFactory("NONE") - val emp = Map.empty[String, String].asJava assert(saslPlainServerFactory.getMechanismNames(emp).head === PlainSaslServer.PLAIN_METHOD) @@ -68,6 +66,52 @@ class PlainSaslServerSuite extends SparkFunSuite { assert(e3.getCause.getMessage === "No password name provided") val res4 = Array(1, 0, 1) server.evaluateResponse(res4.map(_.toByte)) + assert(server.isComplete) + assert(server.getAuthorizationID === "1") + intercept[UnsupportedOperationException](server.wrap(res4.map(_.toByte), 0, 3)) + intercept[UnsupportedOperationException](server.unwrap(res4.map(_.toByte), 0, 3)) + assert(server.getNegotiatedProperty("name") === null) + val res5 = Array(1, 0, 1, 0, 1, 0) + val e5 = intercept[SaslException](server.evaluateResponse(res5.map(_.toByte))) + assert(e5.getMessage === "Error validating the login") + assert(e5.getCause.getMessage === "Invalid message format") + assert(server.dispose().isInstanceOf[Unit]) + + assert(saslPlainServerFactory.createSaslServer( + "ELSE", + "NONE", + "KYUUBI", + emp, new CallbackHandler { + override def handle(callbacks: Array[Callback]): Unit = callbacks.foreach { + case ac: AuthorizeCallback => ac.setAuthorized(true) + case _ => + } + } + ) === null) + + assert(saslPlainServerFactory.createSaslServer( + "PLAIN", + "ELSE", + "KYUUBI", + emp, new CallbackHandler { + override def handle(callbacks: Array[Callback]): Unit = callbacks.foreach { + case ac: AuthorizeCallback => ac.setAuthorized(true) + case _ => + } + } + ) === null) + + val server2 = saslPlainServerFactory.createSaslServer( + "PLAIN", + "NONE", + "KYUUBI", + emp, new CallbackHandler { + override def handle(callbacks: Array[Callback]): Unit = {} + } + ) + val e6 = intercept[SaslException](server2.evaluateResponse(res4.map(_.toByte))) + assert(e6.getMessage === "Error validating the login") + assert(e6.getCause.getMessage === "Authentication failed") }