public void start ( String channelId ) throws AlluxioStatusException { try { LOG . debug ( "Starting SASL handshake for ChannelId:{}" , channelId ) ; // Send the server initial message. mRequestObserver . onNext ( mSaslHandshakeClientHandler . getInitialMessage ( channelId ) ) ; // Wait until authentication status changes. mAuthenticated . get ( mGrpcAuthTimeoutMs , TimeUnit . MILLISECONDS ) ; } catch ( SaslException se ) { throw new UnauthenticatedException ( se . getMessage ( ) , se ) ; } catch ( InterruptedException ie ) { Thread . currentThread ( ) . interrupt ( ) ; throw new UnavailableException ( ie . getMessage ( ) , ie ) ; } catch ( ExecutionException e ) { Throwable cause = ( e . getCause ( ) != null ) ? e . getCause ( ) : e ; if ( cause != null && cause instanceof StatusRuntimeException ) { StatusRuntimeException sre = ( StatusRuntimeException ) cause ; // If caught unimplemented, that means server does not support authentication. if ( sre . getStatus ( ) . getCode ( ) == Status . Code . UNIMPLEMENTED ) { throw new UnauthenticatedException ( "Authentication is disabled on target host." ) ; } throw AlluxioStatusException . fromStatusRuntimeException ( ( StatusRuntimeException ) cause ) ; } throw new UnknownException ( cause . getMessage ( ) , cause ) ; } catch ( TimeoutException e ) { throw new UnavailableException ( e ) ; } }
Starts authentication with the server and wait until completion .