Andrew C created SSHD-220:
-----------------------------

             Summary: Return AuthFuture.getException() != null when the 
connection closes during authentication
                 Key: SSHD-220
                 URL: https://issues.apache.org/jira/browse/SSHD-220
             Project: MINA SSHD
          Issue Type: Bug
    Affects Versions: 0.8.0
            Reporter: Andrew C


One problem I found when implementing my service path was that 
ClientSessionImpl.waitFor wants to root around in the internals of 
UserAuthService to determine if the server is waiting for user authentication.

This patch is a partial back port of the changes I made to address that 
problem.  Instead of using waitFor(WAIT_AUTH), the authentication code can 
directly wait on the AuthFuture returned vis:

            AuthFuture authFuture;
            do {
                if (hasKeys) {
                    authFuture = session.authAgent(login);
                } else {
                    System.out.print("Password:");
                    BufferedReader r = new BufferedReader(new 
InputStreamReader(System.in));
                    String password = r.readLine();
                    authFuture = session.authPassword(login, password);
                }
                authFuture.await();
            } while (authFuture.isFailure());
            if (!authFuture.isSuccess()) {
                System.err.println("error");
                System.exit(-1);
            }

looking at the details:

- it factors out the duplicated code that was handling the wait for the server, 
and processing server/client messages
- if the connection fails, that's reported by getException()!=null and 
everything else being false.
- the internals also authFuture to wait for the server (just like the above)
- even makes it possible to delete WAIT_AUTH if so desired

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to