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);
}