geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chencen <chen...@huawei.com>
Subject I think it's a bug about geronimo-javamail, please check it.
Date Thu, 12 Dec 2013 06:11:15 GMT
Hey,guys!

              My jars are "geronimo-javamail_1.4_mail-1.8.jar" and "geronimo-javamail_1.4_provider-1.8.jar"
,when I set the wrong username and password of email, after the smtp server reply  "535 Authentication
unsuccessful" , the program is blocked,
and the socket connection will not be disconnect until the smtp server reset it.
so I tried to debug and find something:
  the code of "javax.mail. Service"  in  "geronimo-javamail_1.4_mail-1.8.jar" below
   try
    {
      this.connected = protocolConnect(host, port, user, password);
    }
    catch (AuthenticationFailedException e)
    {
    }
    if (!this.connected) {
      InetAddress ipAddress = null;
      try
      {
        ipAddress = InetAddress.getByName(host);
      }
      catch (UnknownHostException e)
      {
      }
      PasswordAuthentication promptPassword = this.session.requestPasswordAuthentication(ipAddress,
port, protocol, null, user);

      if (promptPassword != null) {
        user = promptPassword.getUserName();
        password = promptPassword.getPassword();
      }

      this.connected = protocolConnect(host, port, user, password);
}

because of the red code is out of the range "if(){}" , even if the client cann't get "promptPassword"
, it also will try to connect again with wrong username and password
,but this time it will be blocked at the code of
"org.apache.geronimo.javamail.transport.smtp.SMTPTransport" in "geronimo-javamail_1.4_provider-1.8.jar"

    /**
     * Get the server's welcome blob from the wire....
     */
    protected boolean getWelcome() throws MessagingException {
        SMTPReply line = getReply();
        // just return the error status...we don't care about any of the
        // response information
        return !line.isError();
    }

So I think the right code should be:

      if (promptPassword != null) {
        user = promptPassword.getUserName();
        password = promptPassword.getPassword();

this.connected = protocolConnect(host, port, user, password);
      }



Would you please confirm this bug? Thank you!



Mime
View raw message