yoavs 2005/03/23 07:30:57
Modified: catalina/src/share/org/apache/naming/factory
MailSessionFactory.java
webapps/docs changelog.xml
Log:
Bugzilla 31288.
Revision Changes Path
1.3 +35 -4
jakarta-tomcat-catalina/catalina/src/share/org/apache/naming/factory/MailSessionFactory.java
Index: MailSessionFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/naming/factory/MailSessionFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- MailSessionFactory.java 27 Feb 2004 14:58:54 -0000 1.2
+++ MailSessionFactory.java 23 Mar 2005 15:30:56 -0000 1.3
@@ -21,6 +21,8 @@
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Properties;
+import javax.mail.Authenticator;
+import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.naming.Name;
import javax.naming.Context;
@@ -96,7 +98,9 @@
// Create a new Session inside a doPrivileged block, so that JavaMail
// can read its default properties without throwing Security
- // exceptions
+ // exceptions.
+ //
+ // Bugzilla 31288, 33077: add support for authentication.
return AccessController.doPrivileged( new PrivilegedAction() {
public Object run() {
@@ -104,16 +108,43 @@
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "localhost");
+
+ String password = null;
+
Enumeration attrs = ref.getAll();
while (attrs.hasMoreElements()) {
RefAddr attr = (RefAddr) attrs.nextElement();
- if ("factory".equals(attr.getType()))
+ if ("factory".equals(attr.getType())) {
+ continue;
+ }
+
+ if ("password".equals(attr.getType())) {
+ password = (String) attr.getContent();
continue;
+ }
+
props.put(attr.getType(), (String)
attr.getContent());
}
+ Authenticator auth = null;
+ if (password != null) {
+ String user = props.getProperty("mail.smtp.user");
+ if(user == null) {
+ user = props.getProperty("mail.user");
+ }
+
+ if(user != null) {
+ final PasswordAuthentication pa = new
PasswordAuthentication(user, password);
+ auth = new Authenticator() {
+ protected PasswordAuthentication
getPasswordAuthentication() {
+ return pa;
+ }
+ };
+ }
+ }
+
// Create and return the new Session object
- Session session = Session.getInstance(props, null);
+ Session session = Session.getInstance(props, auth);
return (session);
}
1.247 +3 -0 jakarta-tomcat-catalina/webapps/docs/changelog.xml
Index: changelog.xml
===================================================================
RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -r1.246 -r1.247
--- changelog.xml 23 Mar 2005 15:17:17 -0000 1.246
+++ changelog.xml 23 Mar 2005 15:30:56 -0000 1.247
@@ -84,6 +84,9 @@
<update>
<bug>32938</bug>: Allow Salted SHA (SSHA) passwords in JNDIRealm.
(yoavs)
</update>
+ <update>
+ <bug>31288</bug>: Allow SMTP authentication for JNDI
MailSessionFactory. (yoavs)
+ </update>
</changelog>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]