You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ftpserver-commits@incubator.apache.org by ng...@apache.org on 2006/12/21 20:48:21 UTC

svn commit: r489457 - in /incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager: AbstractUserManager.java BaseUser.java DbUserManager.java LdapUserManager.java PropertiesUserManager.java

Author: ngn
Date: Thu Dec 21 12:48:21 2006
New Revision: 489457

URL: http://svn.apache.org/viewvc?view=rev&rev=489457
Log:
Refactored common base class for all user managers

Added:
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java   (with props)
Modified:
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/BaseUser.java
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/DbUserManager.java
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/LdapUserManager.java
    incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/PropertiesUserManager.java

Added: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java?view=auto&rev=489457
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java (added)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java Thu Dec 21 12:48:21 2006
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */  
+
+package org.apache.ftpserver.usermanager;
+
+import org.apache.ftpserver.ftplet.UserManager;
+
+
+/**
+ * Abstract common base type for {@link UserManager} implementations
+ */
+public abstract 
+class AbstractUserManager implements UserManager {
+
+    public static final String ATTR_LOGIN             = "uid";
+    public static final String ATTR_PASSWORD          = "userpassword";
+    public static final String ATTR_HOME              = "homedirectory";
+    public static final String ATTR_WRITE_PERM        = "writepermission";
+    public static final String ATTR_ENABLE            = "enableflag";
+    public static final String ATTR_MAX_IDLE_TIME     = "idletime";
+    public static final String ATTR_MAX_UPLOAD_RATE   = "uploadrate";
+    public static final String ATTR_MAX_DOWNLOAD_RATE = "downloadrate";
+    public static final String ATTR_MAX_LOGIN_NUMBER = "maxloginnumber";
+    public static final String ATTR_MAX_LOGIN_PER_IP = "maxloginperip";
+
+}
+

Propchange: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/AbstractUserManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/BaseUser.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/BaseUser.java?view=diff&rev=489457&r1=489456&r2=489457
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/BaseUser.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/BaseUser.java Thu Dec 21 12:48:21 2006
@@ -45,17 +45,6 @@
     
     private static final long serialVersionUID = -47371353779731294L;
     
-    public static final String ATTR_LOGIN             = "uid";
-    public static final String ATTR_PASSWORD          = "userpassword";
-    public static final String ATTR_HOME              = "homedirectory";
-    public static final String ATTR_WRITE_PERM        = "writepermission";
-    public static final String ATTR_ENABLE            = "enableflag";
-    public static final String ATTR_MAX_IDLE_TIME     = "idletime";
-    public static final String ATTR_MAX_UPLOAD_RATE   = "uploadrate";
-    public static final String ATTR_MAX_DOWNLOAD_RATE = "downloadrate";
-    public static final String ATTR_MAX_LOGIN_NUMBER = "maxloginnumber";
-    public static final String ATTR_MAX_LOGIN_PER_IP = "maxloginperip";
-    
     private String name        = null;
     private String password    = null;
 

Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/DbUserManager.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/DbUserManager.java?view=diff&rev=489457&r1=489456&r2=489457
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/DbUserManager.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/DbUserManager.java Thu Dec 21 12:48:21 2006
@@ -34,7 +34,6 @@
 import org.apache.ftpserver.ftplet.Configuration;
 import org.apache.ftpserver.ftplet.FtpException;
 import org.apache.ftpserver.ftplet.User;
-import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.util.StringUtils;
 
 /**
@@ -49,7 +48,7 @@
  * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
  */
 public
-class DbUserManager implements UserManager {
+class DbUserManager extends AbstractUserManager {
     
     private Log log;
     
@@ -132,7 +131,7 @@
             
             // create the sql query
             HashMap map = new HashMap();
-            map.put( BaseUser.ATTR_LOGIN, escapeString(login) );
+            map.put( ATTR_LOGIN, escapeString(login) );
             String sql = StringUtils.replaceString(isAdminStmt, map);
             log.info(sql);
             
@@ -219,7 +218,7 @@
         
         // create sql query
         HashMap map = new HashMap();
-        map.put( BaseUser.ATTR_LOGIN, escapeString(name) );
+        map.put( ATTR_LOGIN, escapeString(name) );
         String sql = StringUtils.replaceString(deleteUserStmt, map);
         log.info(sql);
         
@@ -261,16 +260,16 @@
             
             // create sql query
             HashMap map = new HashMap();
-            map.put( BaseUser.ATTR_LOGIN, escapeString(user.getName()) );
-            map.put( BaseUser.ATTR_PASSWORD, escapeString(getPassword(user)) );
-            map.put( BaseUser.ATTR_HOME, escapeString(user.getHomeDirectory()) );
-            map.put( BaseUser.ATTR_ENABLE, String.valueOf(user.getEnabled()) );
-            map.put( BaseUser.ATTR_WRITE_PERM, String.valueOf(user.getWritePermission()) );
-            map.put( BaseUser.ATTR_MAX_IDLE_TIME, new Integer(user.getMaxIdleTime()) );
-            map.put( BaseUser.ATTR_MAX_UPLOAD_RATE, new Integer(user.getMaxUploadRate()) );
-            map.put( BaseUser.ATTR_MAX_DOWNLOAD_RATE, new Integer(user.getMaxDownloadRate()) ); 
-            map.put( BaseUser.ATTR_MAX_LOGIN_NUMBER, new Integer(user.getMaxLoginNumber()));
-            map.put( BaseUser.ATTR_MAX_LOGIN_PER_IP, new Integer(user.getMaxLoginPerIP()));
+            map.put( ATTR_LOGIN, escapeString(user.getName()) );
+            map.put( ATTR_PASSWORD, escapeString(getPassword(user)) );
+            map.put( ATTR_HOME, escapeString(user.getHomeDirectory()) );
+            map.put( ATTR_ENABLE, String.valueOf(user.getEnabled()) );
+            map.put( ATTR_WRITE_PERM, String.valueOf(user.getWritePermission()) );
+            map.put( ATTR_MAX_IDLE_TIME, new Integer(user.getMaxIdleTime()) );
+            map.put( ATTR_MAX_UPLOAD_RATE, new Integer(user.getMaxUploadRate()) );
+            map.put( ATTR_MAX_DOWNLOAD_RATE, new Integer(user.getMaxDownloadRate()) ); 
+            map.put( ATTR_MAX_LOGIN_NUMBER, new Integer(user.getMaxLoginNumber()));
+            map.put( ATTR_MAX_LOGIN_PER_IP, new Integer(user.getMaxLoginPerIP()));
             
             String sql = null;      
             if( !doesExist(user.getName()) ) {
@@ -313,7 +312,7 @@
             
             // create sql query
             HashMap map = new HashMap();
-            map.put( BaseUser.ATTR_LOGIN, escapeString(name) );
+            map.put( ATTR_LOGIN, escapeString(name) );
             String sql = StringUtils.replaceString(selectUserStmt, map);
             log.info(sql);
             
@@ -327,15 +326,15 @@
             String trueStr = Boolean.TRUE.toString();
             if(rs.next()) {
                 thisUser = new BaseUser();
-                thisUser.setName(rs.getString(BaseUser.ATTR_LOGIN));
-                thisUser.setHomeDirectory(rs.getString(BaseUser.ATTR_HOME));
-                thisUser.setEnabled(trueStr.equalsIgnoreCase(rs.getString(BaseUser.ATTR_ENABLE)));
-                thisUser.setWritePermission(trueStr.equalsIgnoreCase(rs.getString(BaseUser.ATTR_WRITE_PERM)));
-                thisUser.setMaxLoginNumber(rs.getInt(BaseUser.ATTR_MAX_LOGIN_NUMBER));
-                thisUser.setMaxLoginPerIP(rs.getInt(BaseUser.ATTR_MAX_LOGIN_PER_IP));
-                thisUser.setMaxIdleTime(rs.getInt(BaseUser.ATTR_MAX_IDLE_TIME));
-                thisUser.setMaxUploadRate(rs.getInt(BaseUser.ATTR_MAX_UPLOAD_RATE));
-                thisUser.setMaxDownloadRate(rs.getInt(BaseUser.ATTR_MAX_DOWNLOAD_RATE));
+                thisUser.setName(rs.getString(ATTR_LOGIN));
+                thisUser.setHomeDirectory(rs.getString(ATTR_HOME));
+                thisUser.setEnabled(trueStr.equalsIgnoreCase(rs.getString(ATTR_ENABLE)));
+                thisUser.setWritePermission(trueStr.equalsIgnoreCase(rs.getString(ATTR_WRITE_PERM)));
+                thisUser.setMaxLoginNumber(rs.getInt(ATTR_MAX_LOGIN_NUMBER));
+                thisUser.setMaxLoginPerIP(rs.getInt(ATTR_MAX_LOGIN_PER_IP));
+                thisUser.setMaxIdleTime(rs.getInt(ATTR_MAX_IDLE_TIME));
+                thisUser.setMaxUploadRate(rs.getInt(ATTR_MAX_UPLOAD_RATE));
+                thisUser.setMaxDownloadRate(rs.getInt(ATTR_MAX_DOWNLOAD_RATE));
             }
             return thisUser;
         }
@@ -373,7 +372,7 @@
             
             // create the sql
             HashMap map = new HashMap();
-            map.put( BaseUser.ATTR_LOGIN, escapeString(name) );
+            map.put( ATTR_LOGIN, escapeString(name) );
             String sql = StringUtils.replaceString(selectUserStmt, map);
             log.info(sql);
             
@@ -428,7 +427,7 @@
             // populate list
             ArrayList names = new ArrayList();
             while(rs.next()) {
-                names.add(rs.getString(BaseUser.ATTR_LOGIN));
+                names.add(rs.getString(ATTR_LOGIN));
             }
             return (String[]) names.toArray(new String[0]);
         }
@@ -477,7 +476,7 @@
 
         // create sql query
         HashMap map = new HashMap();
-        map.put( BaseUser.ATTR_LOGIN, escapeString(user.getName()) );
+        map.put( ATTR_LOGIN, escapeString(user.getName()) );
         String sql = StringUtils.replaceString(selectUserStmt, map);
         log.info(sql);
         
@@ -489,7 +488,7 @@
             stmt = connection.createStatement();
             rs = stmt.executeQuery(sql);
             if (rs.next()) {
-                password = rs.getString(BaseUser.ATTR_PASSWORD);
+                password = rs.getString(ATTR_PASSWORD);
             }
         }
         finally {
@@ -541,8 +540,8 @@
                 
                 // create the sql query
                 HashMap map = new HashMap();
-                map.put( BaseUser.ATTR_LOGIN, escapeString(user) );
-                map.put( BaseUser.ATTR_PASSWORD, escapeString(password) );
+                map.put( ATTR_LOGIN, escapeString(user) );
+                map.put( ATTR_PASSWORD, escapeString(password) );
                 String sql = StringUtils.replaceString(authenticateStmt, map);
                 log.info(sql);
                 

Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/LdapUserManager.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/LdapUserManager.java?view=diff&rev=489457&r1=489456&r2=489457
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/LdapUserManager.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/LdapUserManager.java Thu Dec 21 12:48:21 2006
@@ -41,7 +41,6 @@
 import org.apache.ftpserver.ftplet.Configuration;
 import org.apache.ftpserver.ftplet.FtpException;
 import org.apache.ftpserver.ftplet.User;
-import org.apache.ftpserver.ftplet.UserManager;
 
 /**
  * Ldap based user manager class where the object class is ftpusers. This has
@@ -51,7 +50,7 @@
  * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
  */
 public
-class LdapUserManager implements UserManager {
+class LdapUserManager extends AbstractUserManager {
     
     // LDAP attributes
     private final static String CN         = "cn";

Modified: incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/PropertiesUserManager.java
URL: http://svn.apache.org/viewvc/incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/PropertiesUserManager.java?view=diff&rev=489457&r1=489456&r2=489457
==============================================================================
--- incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/PropertiesUserManager.java (original)
+++ incubator/ftpserver/trunk/core/src/java/org/apache/ftpserver/usermanager/PropertiesUserManager.java Thu Dec 21 12:48:21 2006
@@ -34,7 +34,6 @@
 import org.apache.ftpserver.ftplet.Configuration;
 import org.apache.ftpserver.ftplet.FtpException;
 import org.apache.ftpserver.ftplet.User;
-import org.apache.ftpserver.ftplet.UserManager;
 import org.apache.ftpserver.util.BaseProperties;
 import org.apache.ftpserver.util.EncryptUtils;
 import org.apache.ftpserver.util.IoUtils;
@@ -47,7 +46,7 @@
  * @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
  */
 public
-class PropertiesUserManager implements UserManager {
+class PropertiesUserManager extends AbstractUserManager {
 
     private final static String PREFIX    = "FtpServer.user.";
 
@@ -115,20 +114,20 @@
        String thisPrefix = PREFIX + usr.getName() + '.';
        
        // set other properties
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_PASSWORD,          getPassword(usr));
+       userDataProp.setProperty(thisPrefix + ATTR_PASSWORD,          getPassword(usr));
        
        String home = usr.getHomeDirectory();
        if(home == null) {
            home = "/";
        }
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_HOME,              home);
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_ENABLE,            usr.getEnabled());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_WRITE_PERM,        usr.getWritePermission());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_MAX_IDLE_TIME,     usr.getMaxIdleTime());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_MAX_UPLOAD_RATE,   usr.getMaxUploadRate());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_MAX_DOWNLOAD_RATE, usr.getMaxDownloadRate());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_MAX_LOGIN_NUMBER, usr.getMaxLoginNumber());
-       userDataProp.setProperty(thisPrefix + BaseUser.ATTR_MAX_LOGIN_PER_IP, usr.getMaxLoginPerIP());
+       userDataProp.setProperty(thisPrefix + ATTR_HOME,              home);
+       userDataProp.setProperty(thisPrefix + ATTR_ENABLE,            usr.getEnabled());
+       userDataProp.setProperty(thisPrefix + ATTR_WRITE_PERM,        usr.getWritePermission());
+       userDataProp.setProperty(thisPrefix + ATTR_MAX_IDLE_TIME,     usr.getMaxIdleTime());
+       userDataProp.setProperty(thisPrefix + ATTR_MAX_UPLOAD_RATE,   usr.getMaxUploadRate());
+       userDataProp.setProperty(thisPrefix + ATTR_MAX_DOWNLOAD_RATE, usr.getMaxDownloadRate());
+       userDataProp.setProperty(thisPrefix + ATTR_MAX_LOGIN_NUMBER, usr.getMaxLoginNumber());
+       userDataProp.setProperty(thisPrefix + ATTR_MAX_LOGIN_PER_IP, usr.getMaxLoginPerIP());
    
        saveUserData();
     }
@@ -204,7 +203,7 @@
             }
             
             if( doesExist(name) ) {
-                String key = PREFIX + name + '.' + BaseUser.ATTR_PASSWORD;
+                String key = PREFIX + name + '.' + ATTR_PASSWORD;
                 password = userDataProp.getProperty(key, blankPassword);
             }
             else {
@@ -220,7 +219,7 @@
     public synchronized String[] getAllUserNames() {
 
         // get all user names
-        String suffix = '.' + BaseUser.ATTR_HOME;
+        String suffix = '.' + ATTR_HOME;
         ArrayList ulst = new ArrayList();
         Enumeration allKeys = userDataProp.propertyNames();
         int prefixlen = PREFIX.length();
@@ -251,14 +250,14 @@
         String baseKey = PREFIX + userName + '.';
         BaseUser user = new BaseUser();
         user.setName(userName);
-        user.setEnabled(userDataProp.getBoolean(baseKey + BaseUser.ATTR_ENABLE, true));
-        user.setHomeDirectory( userDataProp.getProperty(baseKey + BaseUser.ATTR_HOME, "/") );
-        user.setWritePermission(userDataProp.getBoolean(baseKey + BaseUser.ATTR_WRITE_PERM, false));
-        user.setMaxLoginNumber(userDataProp.getInteger(baseKey + BaseUser.ATTR_MAX_LOGIN_NUMBER, 0));
-        user.setMaxLoginPerIP(userDataProp.getInteger(baseKey + BaseUser.ATTR_MAX_LOGIN_PER_IP, 0));
-        user.setMaxIdleTime(userDataProp.getInteger(baseKey + BaseUser.ATTR_MAX_IDLE_TIME, 0));
-        user.setMaxUploadRate(userDataProp.getInteger(baseKey + BaseUser.ATTR_MAX_UPLOAD_RATE, 0));
-        user.setMaxDownloadRate(userDataProp.getInteger(baseKey + BaseUser.ATTR_MAX_DOWNLOAD_RATE, 0));
+        user.setEnabled(userDataProp.getBoolean(baseKey + ATTR_ENABLE, true));
+        user.setHomeDirectory( userDataProp.getProperty(baseKey + ATTR_HOME, "/") );
+        user.setWritePermission(userDataProp.getBoolean(baseKey + ATTR_WRITE_PERM, false));
+        user.setMaxLoginNumber(userDataProp.getInteger(baseKey + ATTR_MAX_LOGIN_NUMBER, 0));
+        user.setMaxLoginPerIP(userDataProp.getInteger(baseKey + ATTR_MAX_LOGIN_PER_IP, 0));
+        user.setMaxIdleTime(userDataProp.getInteger(baseKey + ATTR_MAX_IDLE_TIME, 0));
+        user.setMaxUploadRate(userDataProp.getInteger(baseKey + ATTR_MAX_UPLOAD_RATE, 0));
+        user.setMaxDownloadRate(userDataProp.getInteger(baseKey + ATTR_MAX_DOWNLOAD_RATE, 0));
         return user;
     }
     
@@ -266,7 +265,7 @@
      * User existance check
      */
     public synchronized boolean doesExist(String name) {
-        String key = PREFIX + name + '.' + BaseUser.ATTR_HOME;
+        String key = PREFIX + name + '.' + ATTR_HOME;
         return userDataProp.containsKey(key);
     }
     
@@ -289,7 +288,7 @@
                 password = "";
             }
             
-            String passVal = userDataProp.getProperty(PREFIX + user + '.' + BaseUser.ATTR_PASSWORD);
+            String passVal = userDataProp.getProperty(PREFIX + user + '.' + ATTR_PASSWORD);
             if (isPasswordEncrypt) {
                 password = EncryptUtils.encryptMD5(password);
             }