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

WEB邮件程序

开发平台:

C/C++

  1. /* CVS ID: $Id: Authenticator.java,v 1.2 2000/04/06 08:02:02 wastl Exp $ */
  2. package net.wastl.webmail.server;
  3. import net.wastl.webmail.config.ConfigScheme;
  4. /**
  5.  * Authenticator.java
  6.  *
  7.  * Created: Mon Apr 19 11:01:22 1999
  8.  *
  9.  * Copyright (C) 1999-2000 Sebastian Schaffert
  10.  * 
  11.  * This program is free software; you can redistribute it and/or
  12.  * modify it under the terms of the GNU General Public License
  13.  * as published by the Free Software Foundation; either version 2
  14.  * of the License, or (at your option) any later version.
  15.  * 
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  * 
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  24.  */
  25. /**
  26.  * Generic class for user authentication.
  27.  * This class actually doesn't do anything.
  28.  *
  29.  * @author Sebastian Schaffert
  30.  * @version 1.0
  31.  * @see SimpleStorage
  32.  */
  33. public abstract class Authenticator  {
  34.     
  35.     protected String key;
  36.     public Authenticator() {
  37.     }    
  38.     public String getKey() {
  39. return key;
  40.     }
  41.     public abstract String getVersion();
  42.     /**
  43.      * (Re-)Initialize this authenticator.
  44.      * Needed as we can't use the Constructor properly with the Plugin-style.
  45.      * @param parent Give the Storage to allow the authenticator to check certain things.
  46.      */
  47.     public abstract void init(Storage store);
  48.     /**
  49.      * Register this authenticator with WebMail.
  50.      */
  51.     public abstract void register(ConfigScheme store);
  52.     
  53.     /**
  54.      * Authentication to be done *before* UserData is available.
  55.      * You may use a Unix login() for example to check whether a user is allowed to use WebMail in general
  56.      * Subclasses should override this. It simply does nothing in this implementation.
  57.      * 
  58.      * @param login Login-name for the user
  59.      * @param domain Domain name the user used to log on
  60.      * @param passwd Password to verify
  61.      */
  62.     public void authenticatePreUserData(String login, String domain,String passwd) throws InvalidPasswordException {
  63. if(login.equals("") || passwd.equals("")) {
  64.     throw new InvalidPasswordException();
  65. }
  66.     }
  67.     
  68.     /**
  69.      * Authentication with available UserData. 
  70.      * This usually should just check the password saved by the user, but may also be empty if you trust the 
  71.      * pre-authentication (perhaps that was done against the Unix-login(), you can really trust in in that
  72.      * case.
  73.      * Subclasses should override this. It simply does nothing in this implementation.
  74.      * 
  75.      * @param login Login-name for the user
  76.      * @param domain Domain name the user used to log on
  77.      * @param passwd Password to verify
  78.      */
  79.     public void authenticatePostUserData(UserData udata, String domain,String password) throws InvalidPasswordException {
  80.     }
  81.     /**
  82.      * Tell WebMail whether this authentication method allows users to change their passwords.
  83.      * A Password-change option is then shown in the Options-Dialog.
  84.      */
  85.     public boolean canChangePassword() {
  86. return true;
  87.     }
  88.     public void changePassword(UserData udata, String newpassword, String verify) throws InvalidPasswordException {
  89.     }
  90. } // Authenticator