public void receiveSaslMechanisms(final SaslMechanisms saslMechanisms) { if (Arrays.asList(saslMechanisms.getSaslServerMechanisms()).contains(Symbol.valueOf("PLAIN"))) { SaslInit init = new SaslInit(); init.setMechanism(Symbol.valueOf("PLAIN")); init.setHostname(_remoteHostname); byte[] usernameBytes = _user.getName().getBytes(Charset.forName("UTF-8")); byte[] passwordBytes = _password.getBytes(Charset.forName("UTF-8")); byte[] initResponse = new byte[usernameBytes.length + passwordBytes.length + 2]; System.arraycopy(usernameBytes, 0, initResponse, 1, usernameBytes.length); System.arraycopy( passwordBytes, 0, initResponse, usernameBytes.length + 2, passwordBytes.length); init.setInitialResponse(new Binary(initResponse)); _saslFrameOutput.send(new SASLFrame(init), null); } }