[ 
https://issues.apache.org/jira/browse/GERONIMO-4910?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Simon von Janowsky updated GERONIMO-4910:
-----------------------------------------

    Description: 
When a url ist set to receive email, the username is extracted correctly using 
UrlName class, but when querying  the imap server the system defined username 
is used instead.

This is because the username in the connect Method in Service.java overrides 
the username from the url. See this code excerpt from javax.mail.Service.class 
in geronimo-javamail_1.4_spec-1.6.jar 
class: Service.java
method: connect(String host, int port, String user, String password)

{code:title=Service.java|borderStyle=solid}
if (user == null)  {
    // first choice is from the url, if we have
    if (url != null) {
       user = url.getUsername();
       // make sure we get the password from the url, if we can.
       if (password == null) {
          password = url.getPassword();
       }
       // user still null?  We have several levels of properties to try yet
       if (user == null) {
          if (protocol != null) {
             user = session.getProperty("mail." + protocol + ".user");
          }
      }
  }

  // this may still be null...get the global mail property
  if (user == null) {
         user = session.getProperty("mail.user");
    }

    // finally, we try getting the system defined user name
    try {
        // HERE THE USER IS ALWAYS OVERWRITTEN
        user = System.getProperty("user.name");
     } catch (SecurityException e) {
         // we ignore this, and just us a null username.
     }
}

{code}

With kind regards,
Simon von Janowsky


  was:
When a url ist set to receive email, the username is extracted correctly using 
UrlName class, but when querying  the imap server the system defined username 
is used instead.

This is because the username in the connect Method in Service.java overrides 
the username from the url. See this code excerpt from javax.mail.Service.class 
in geronimo-javamail_1.4_spec-1.6.jar 
class: Service.java
method: connect(String host, int port, String user, String password)

{code:title=Service.java|borderStyle=solid}

       if (user == null)  {
            // first choice is from the url, if we have
            if (url != null) {
                user = url.getUsername();
                // make sure we get the password from the url, if we can.
                if (password == null) {
                    password = url.getPassword();
                }
                // user still null?  We have several levels of properties to 
try yet
                if (user == null) {
                        if (protocol != null) {
                                user = session.getProperty("mail." + protocol + 
".user");
                        }
                }
            }

            // this may still be null...get the global mail property
            if (user == null) {
                user = session.getProperty("mail.user");
            }

            // finally, we try getting the system defined user name
            try {
                // HERE THE USER IS ALWAYS OVERWRITTEN
                user = System.getProperty("user.name");
            } catch (SecurityException e) {
                // we ignore this, and just us a null username.
            }
        }

{code}

With kind regards,
Simon von Janowsky



> Problem in geronimo-javamail_1.4_spec
> -------------------------------------
>
>                 Key: GERONIMO-4910
>                 URL: https://issues.apache.org/jira/browse/GERONIMO-4910
>             Project: Geronimo
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: mail
>            Reporter: Simon von Janowsky
>
> When a url ist set to receive email, the username is extracted correctly 
> using UrlName class, but when querying  the imap server the system defined 
> username is used instead.
> This is because the username in the connect Method in Service.java overrides 
> the username from the url. See this code excerpt from 
> javax.mail.Service.class in geronimo-javamail_1.4_spec-1.6.jar 
> class: Service.java
> method: connect(String host, int port, String user, String password)
> {code:title=Service.java|borderStyle=solid}
> if (user == null)  {
>     // first choice is from the url, if we have
>     if (url != null) {
>        user = url.getUsername();
>        // make sure we get the password from the url, if we can.
>        if (password == null) {
>           password = url.getPassword();
>        }
>        // user still null?  We have several levels of properties to try yet
>        if (user == null) {
>           if (protocol != null) {
>              user = session.getProperty("mail." + protocol + ".user");
>           }
>       }
>   }
>   // this may still be null...get the global mail property
>   if (user == null) {
>          user = session.getProperty("mail.user");
>     }
>     // finally, we try getting the system defined user name
>     try {
>         // HERE THE USER IS ALWAYS OVERWRITTEN
>         user = System.getProperty("user.name");
>      } catch (SecurityException e) {
>          // we ignore this, and just us a null username.
>      }
> }
> {code}
> With kind regards,
> Simon von Janowsky

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to