SparkSaslClient saslClient = new SparkSaslClient(appId, secretKeyHolder, encrypt); try { byte[] payload = saslClient.firstToken(); while (!saslClient.isComplete()) { SaslMessage msg = new SaslMessage(appId, payload); ByteBuf buf = Unpooled.buffer(msg.encodedLength() + (int) msg.body().size()); payload = saslClient.response(JavaUtils.bufferToArray(response)); if (!SparkSaslServer.QOP_AUTH_CONF.equals(saslClient.getNegotiatedProperty(Sasl.QOP))) { throw new RuntimeException( new SaslException("Encryption requests by negotiated non-encrypted connection.")); try { saslClient.dispose(); } catch (RuntimeException e) { logger.error("Error while disposing SASL client", e);
SparkSaslClient saslClient = new SparkSaslClient(appId, secretKeyHolder, conf.saslEncryption()); try { byte[] payload = saslClient.firstToken(); while (!saslClient.isComplete()) { SaslMessage msg = new SaslMessage(appId, payload); ByteBuf buf = Unpooled.buffer(msg.encodedLength() + (int) msg.body().size()); payload = saslClient.response(JavaUtils.bufferToArray(response)); if (!SparkSaslServer.QOP_AUTH_CONF.equals(saslClient.getNegotiatedProperty(Sasl.QOP))) { throw new RuntimeException( new SaslException("Encryption requests by negotiated non-encrypted connection.")); try { saslClient.dispose(); } catch (RuntimeException e) { logger.error("Error while disposing SASL client", e);
SparkSaslClient saslClient = new SparkSaslClient(appId, secretKeyHolder, conf.saslEncryption()); try { byte[] payload = saslClient.firstToken(); while (!saslClient.isComplete()) { SaslMessage msg = new SaslMessage(appId, payload); ByteBuf buf = Unpooled.buffer(msg.encodedLength() + (int) msg.body().size()); payload = saslClient.response(JavaUtils.bufferToArray(response)); if (!SparkSaslServer.QOP_AUTH_CONF.equals(saslClient.getNegotiatedProperty(Sasl.QOP))) { throw new RuntimeException( new SaslException("Encryption requests by negotiated non-encrypted connection.")); try { saslClient.dispose(); } catch (RuntimeException e) { logger.error("Error while disposing SASL client", e);
SparkSaslClient saslClient = new SparkSaslClient(appId, secretKeyHolder, conf.saslEncryption()); try { byte[] payload = saslClient.firstToken(); while (!saslClient.isComplete()) { SaslMessage msg = new SaslMessage(appId, payload); ByteBuf buf = Unpooled.buffer(msg.encodedLength() + (int) msg.body().size()); payload = saslClient.response(JavaUtils.bufferToArray(response)); if (!SparkSaslServer.QOP_AUTH_CONF.equals(saslClient.getNegotiatedProperty(Sasl.QOP))) { throw new RuntimeException( new SaslException("Encryption requests by negotiated non-encrypted connection.")); try { saslClient.dispose(); } catch (RuntimeException e) { logger.error("Error while disposing SASL client", e);
@Test public void testMatching() { SparkSaslClient client = new SparkSaslClient("shared-secret", secretKeyHolder, false); SparkSaslServer server = new SparkSaslServer("shared-secret", secretKeyHolder, false); assertFalse(client.isComplete()); assertFalse(server.isComplete()); byte[] clientMessage = client.firstToken(); while (!client.isComplete()) { clientMessage = client.response(server.response(clientMessage)); } assertTrue(server.isComplete()); // Disposal should invalidate server.dispose(); assertFalse(server.isComplete()); client.dispose(); assertFalse(client.isComplete()); }
@Test public void testNonMatching() { SparkSaslClient client = new SparkSaslClient("my-secret", secretKeyHolder, false); SparkSaslServer server = new SparkSaslServer("your-secret", secretKeyHolder, false); assertFalse(client.isComplete()); assertFalse(server.isComplete()); byte[] clientMessage = client.firstToken(); try { while (!client.isComplete()) { clientMessage = client.response(server.response(clientMessage)); } fail("Should not have completed"); } catch (Exception e) { assertTrue(e.getMessage().contains("Mismatched response")); assertFalse(client.isComplete()); assertFalse(server.isComplete()); } }
@Test public void testMatching() { SparkSaslClient client = new SparkSaslClient("shared-secret", secretKeyHolder, false); SparkSaslServer server = new SparkSaslServer("shared-secret", secretKeyHolder, false); assertFalse(client.isComplete()); assertFalse(server.isComplete()); byte[] clientMessage = client.firstToken(); while (!client.isComplete()) { clientMessage = client.response(server.response(clientMessage)); } assertTrue(server.isComplete()); // Disposal should invalidate server.dispose(); assertFalse(server.isComplete()); client.dispose(); assertFalse(client.isComplete()); }
@Test public void testNonMatching() { SparkSaslClient client = new SparkSaslClient("my-secret", secretKeyHolder, false); SparkSaslServer server = new SparkSaslServer("your-secret", secretKeyHolder, false); assertFalse(client.isComplete()); assertFalse(server.isComplete()); byte[] clientMessage = client.firstToken(); try { while (!client.isComplete()) { clientMessage = client.response(server.response(clientMessage)); } fail("Should not have completed"); } catch (Exception e) { assertTrue(e.getMessage().contains("Mismatched response")); assertFalse(client.isComplete()); assertFalse(server.isComplete()); } }