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. It is set while an authentication is ongoing.
      • 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​(int cmd,
                                       Buffer buffer,
                                       AuthFuture authFuture)
                                throws java.lang.Exception
        Execute one step in user authentication.
        Parameters:
        cmd - the command
        buffer - the input Buffer, with the reading position after the command byte
        authFuture - the AuthFuture
        Throws:
        java.lang.Exception - If failed to process
      • tryNext

        protected void tryNext​(int cmd,
                               AuthFuture authFuture)
                        throws java.lang.Exception
        Throws:
        java.lang.Exception
      • clearUserAuth

        private void clearUserAuth()
      • 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