Class InteractivePasswordIdentityProvider

  • All Implemented Interfaces:
    java.util.Iterator<java.lang.String>, ClientSessionHolder, SessionContextHolder, SessionHolder<ClientSession>

    public class InteractivePasswordIdentityProvider
    extends java.lang.Object
    implements java.util.Iterator<java.lang.String>, SessionHolder<ClientSession>, ClientSessionHolder

    Helps implement a PasswordIdentityProvider by delegating calls to UserInteraction.getUpdatedPassword(ClientSession, String, String). The way to use it would be as follows:

     
     try (ClientSession session = client.connect(login, host, port).await().getSession()) {
         session.setUserInteraction(...);     // this can also be set at the client level
         PasswordIdentityProvider passwordIdentityProvider =
              InteractivePasswordIdentityProvider.providerOf(session, "My prompt");
         session.setPasswordIdentityProvider(passwordIdentityProvider);
         session.auth.verify(...timeout...);
     }
    
     or
    
     UserInteraction ui = ....;
     try (ClientSession session = client.connect(login, host, port).await().getSession()) {
         PasswordIdentityProvider passwordIdentityProvider =
              InteractivePasswordIdentityProvider.providerOf(session, ui, "My prompt");
         session.setPasswordIdentityProvider(passwordIdentityProvider);
         session.auth.verify(...timeout...);
     }
     
     
    Note: UserInteraction.isInteractionAllowed(ClientSession) is consulted prior to invoking getUpdatedPassword - if returns false then password retrieval method is not invoked, and it is assumed that no more passwords are available
    • Field Detail

      • EOF

        protected static final java.lang.String EOF
        Special marker to indicate that we exhausted all attempts
        See Also:
        Constant Field Values
      • prompt

        private java.lang.String prompt
      • nextPassword

        private java.util.concurrent.atomic.AtomicReference<java.lang.String> nextPassword
    • Constructor Detail

      • InteractivePasswordIdentityProvider

        public InteractivePasswordIdentityProvider​(ClientSession clientSession,
                                                   UserInteraction userInteraction,
                                                   java.lang.String prompt)