Class ClientUserAuthService

    • Field Detail

      • authFutureHolder

        protected final java.util.concurrent.atomic.AtomicReference<AuthFuture> authFutureHolder
        The AuthFuture that is being used by the current auth request. This encodes the state. isSuccess -> authenticated, else if isDone -> server waiting for user auth, else authenticating.
      • authFactories

        protected final java.util.List<UserAuthFactory> authFactories
      • clientMethods

        protected final java.util.List<java.lang.String> clientMethods
      • serverMethods

        protected java.util.List<java.lang.String> serverMethods
      • properties

        private final java.util.Map<java.lang.String,​java.lang.Object> properties
      • service

        private java.lang.String service
      • currentMethod

        private int currentMethod
      • initLock

        private final java.lang.Object initLock
      • started

        private boolean started
      • initialRequestSender

        private java.lang.Runnable initialRequestSender
    • Constructor Detail

      • ClientUserAuthService

        public ClientUserAuthService​(Session s)
    • Method Detail

      • getProperties

        public java.util.Map<java.lang.String,​java.lang.Object> getProperties()
        Description copied from interface: PropertyResolver

        A map of properties that can be used to configure the SSH server or client. This map will never be changed by either the server or client and is not supposed to be changed at runtime (changes are not bound to have any effect on a running client or server), though it may affect the creation of sessions later as these values are usually not cached.

        Note: the type of the mapped property should match the expected configuration value type - Long, Integer, Boolean, String, etc.... If it doesn't, the toString() result of the mapped value is used to convert it to the required type. E.g., if the mapped value is the string "1234" and the expected value is a long then it will be parsed into one. Also, if the mapped value is an Integer but a long is expected, then it will be converted into one.

        Specified by:
        getProperties in interface PropertyResolver
        Returns:
        a valid Map containing configuration values, never null. Note: may be immutable.
      • start

        public void start()
        Specified by:
        start in interface Service
      • getCurrentServiceName

        public java.lang.String getCurrentServiceName()
      • auth

        public AuthFuture auth​(java.lang.String service)
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • updateCurrentAuthFuture

        protected AuthFuture updateCurrentAuthFuture​(ClientSession session,
                                                     java.lang.String service)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • createAuthFuture

        protected AuthFuture createAuthFuture​(ClientSession session,
                                              java.lang.String service)
                                       throws java.io.IOException
        Throws:
        java.io.IOException
      • sendInitialAuthRequest

        protected IoWriteFuture sendInitialAuthRequest​(ClientSession session,
                                                       java.lang.String service)
                                                throws java.io.IOException
        Throws:
        java.io.IOException
      • process

        public void process​(int cmd,
                            Buffer buffer)
                     throws java.lang.Exception
        Description copied from interface: Service
        Service the request.
        Specified by:
        process in interface Service
        Parameters:
        cmd - The incoming command type
        buffer - The Buffer containing optional command parameters
        Throws:
        java.lang.Exception - If failed to process the command
      • processUserAuth

        protected void processUserAuth​(Buffer buffer)
                                throws java.lang.Exception
        Execute one step in user authentication.
        Parameters:
        buffer - The input Buffer
        Throws:
        java.lang.Exception - If failed to process
      • tryNext

        protected void tryNext​(int cmd)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • preClose

        protected void preClose()
        Description copied from class: AbstractCloseable
        preClose is guaranteed to be called before doCloseGracefully or doCloseImmediately. When preClose() is called, isClosing() == true
        Overrides:
        preClose in class AbstractCloseable