Github user sohami commented on a diff in the pull request: https://github.com/apache/drill/pull/578#discussion_r94701486 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/rpc/user/UserServer.java --- @@ -246,28 +163,78 @@ protected void handle(UserClientConnectionImpl connection, int rpcType, ByteBuf public class UserClientConnectionImpl extends RemoteConnection implements UserClientConnection { private UserSession session; + private SaslServer saslServer; + private RequestHandler<UserClientConnectionImpl> currentHandler; + private UserToBitHandshake inbound; public UserClientConnectionImpl(SocketChannel channel) { super(channel, "user client"); + currentHandler = authFactory == null ? handler : new UserServerAuthenticationHandler(handler, loginManager); } void disableReadTimeout() { getChannel().pipeline().remove(BasicServer.TIMEOUT_HANDLER); } - void setUser(final UserToBitHandshake inbound) throws IOException { + void setHandshake(final UserToBitHandshake inbound) { + this.inbound = inbound; + } + + void initSaslServer(final String mechanismName, final Map<String, ?> properties) + throws IllegalStateException, IllegalArgumentException, SaslException { + if (saslServer != null) { + throw new IllegalStateException("SASL server already initialized."); + } + + this.saslServer = authFactory.getMechanism(mechanismName) + .createSaslServer(properties); + if (saslServer == null) { + throw new SaslException("Server could not initiate authentication. Insufficient parameters?"); --- End diff -- Shouldn't the exception message here be "Failed to initialize Sasl Server", since that's what the function is doing ?
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---