[
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.