IMAPAuthenticator.java
上传用户:huihesys
上传日期:2007-01-04
资源大小:3877k
文件大小:2k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /* $Id: IMAPAuthenticator.java,v 1.1.1.1 2000/02/01 12:01:31 wastl Exp $ */
  2. import net.wastl.webmail.server.*;
  3. import javax.mail.*;
  4. import net.wastl.webmail.config.*;
  5. import java.util.*;
  6. /**
  7.  * IMAPAuthenticator.java
  8.  *
  9.  *
  10.  * Created: Mon Apr 19 12:03:53 1999
  11.  *
  12.  * @author Sebastian Schaffert
  13.  * @version
  14.  */
  15. public class IMAPAuthenticator extends net.wastl.webmail.server.Authenticator {
  16.     public final String VERSION="1.2";
  17.     private Store st;
  18.     private Storage storage;
  19.     public IMAPAuthenticator() {
  20. super();
  21.     }
  22.     public String getVersion() {
  23. return VERSION;
  24.     }
  25.     public void init(Storage store) {
  26. storage=store;
  27. Session session=Session.getDefaultInstance(System.getProperties(),null);
  28. try {
  29.     st=session.getStore("imap");
  30. } catch(NoSuchProviderException e) {
  31.     e.printStackTrace();
  32. }
  33.     }
  34.     public void register(ConfigScheme store) {
  35. key="IMAP";
  36. store.configAddChoice("AUTH",key,"Authenticate against an IMAP server on the net. Does not allow password change.");
  37.     }
  38.     
  39.     public void authenticatePreUserData(String user, String domain,String passwd) throws InvalidPasswordException {
  40. super.authenticatePreUserData(user,domain,passwd);
  41. WebMailVirtualDomain vd=storage.getVirtualDomain(domain);
  42. String authhost=vd.getAuthenticationHost();
  43. try {
  44.     st.connect(authhost,user,passwd);
  45.     st.close();
  46.     storage.log(Storage.LOG_INFO,"IMAPAuthentication: user "+user+
  47. " authenticated successfully (imap host: "+authhost+").");
  48. } catch(MessagingException e) {
  49.     storage.log(Storage.LOG_WARN,"IMAPAuthentication: user "+user+
  50. " authentication failed (imap host: "+authhost+").");
  51.     //e.printStackTrace();
  52.     throw new InvalidPasswordException("IMAP authentication failed!");
  53. }
  54.     }
  55.     public boolean canChangePassword() {
  56. return false;
  57.     }
  58. } // IMAPAuthenticator