Apache FtpServer数据库管理用户实现步骤
一 Proxool连接池配置
dbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://127.0.0.1\:3306/study
jdbc.username=root
jdbc.password=root
##数据库别名
jdbc.alias =study
##最大连接数
jdbc.maximum-connection-count=50
##最小连接数
jdbc.minmum-connection-conunt =5
##housekeeper检测到某个线程的活动时间大于这个数值.它将会杀掉这个线程默认是5分钟.
jdbc.maximum-active-time=50000
##house keeper 保留线程处于睡眠状态的最长时间,house keeper 的职责就是检查各个连接的状态,并判断是否需要销毁或者创建
jdbc.house-keeping-sleep-time=30000
##一个线程的最大寿命
jdbc.maximum-connection-lifetime=60000
##可用连接的最小数量
jdbc.prototype-count=2
##发现了空闲的数据库连接.house keeper 将会用这个语句来测试
jdbc.house-keeping-test-SQL=SELECT CURRENT_DATE
##连接池使用状况统计。 参数“10s,1m,1d”
jdbc.statistics=10s,1m,1d
## 详细信息设置
jdbc.verbose=true
##打印sql
jdbc.trace=true
##日志
jdbc.statistics-log-level=DEBUG
jdbc.simultaneous-build-throttle=1
jdbc.overload-wIThout-refusal-lifetime=10000
jdbc.fatal-SQL-exception=ORA-1234
二 Spring配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
default-lazy-init="false">
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
</beans>
三 Apache FtpServer server集成到Spring中,在Spring配置文件加入如下代码
<server xmlns="http://mina.apache.org/ftpserver/spring/v1"
xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd
"
id="myUserServer" max-logins="500" anon-enabled="false"
max-anon-logins="10" max-login-failures="3" login-failure-delay="500">
<listeners>
<nio-listener name="default" port="21">
<ssl>
<keystore file="/ftpserver/ftpserver.jks" password="password" />
</ssl>
</nio-listener>
</listeners>
<ftplets>
<ftplet name="ftplet1">
<beans:bean class="com.dt.ftp.server.MyFtplet" />
</ftplet>
</ftplets>
</server>
四 数据库管理配置,在Server元素里加入如下配置代码
<db-user-manager encrypt-passwords="clear">
<data-source>
<beans:bean class="org.logicalcobwebs.proxool.ProxoolDataSource">
<beans:property name="driver" value="${jdbc.driverClassName}" />
<beans:property name="driverUrl" value="${jdbc.url}" />
<beans:property name="user" value="${jdbc.username}" />
<beans:property name="password" value="${jdbc.password}" />
<beans:property name="alias" value="${jdbc.alias}" />
<beans:property name="minimumConnectionCount" value="${jdbc.minmum-connection-conunt}" />
<beans:property name="maximumConnectionCount"
value="${jdbc.maximum-connection-count}" />
<beans:property name="prototypeCount" value="${jdbc.prototype-count}" />
<beans:property name="delegateProperties" value="autoCommit=true, foo=5" />
<beans:property name="houseKeepingTestSql"
value="${jdbc.house-keeping-test-SQL}" />
<beans:property name="statistics" value="${jdbc.statistics}" />
<beans:property name="trace" value="${jdbc.trace}" />
</beans:bean>
</data-source>
<insert-user>INSERT INTO FTP_USER (userid, userpassword,
homedirectory, enableflag, writepermission, idletime, uploadrate,
downloadrate) VALUES ('{userid}', '{userpassword}', '{homedirectory}','{enableflag}',
'{writepermission}', {idletime}, {uploadrate},{downloadrate})</insert-user>
<update-user>UPDATE FTP_USER SET userpassword='{userpassword}',homedirectory=
'{homedirectory}',enableflag={enableflag},writepermission={writepermission},idletime={idletime}
,uploadrate={uploadrate},downloadrate={downloadrate}
WHERE userid='{userid}'
</update-user>
<delete-user>DELETE FROM FTP_USER WHERE userid = '{userid}'</delete-user>
<select-user>SELECT userid, userpassword, homedirectory,
enableflag, writepermission, idletime, maxloginnumber,maxloginperip,uploadrate, downloadrate
FROM FTP_USER WHERE userid = '{userid}'</select-user>
<select-all-users>SELECT userid FROM FTP_USER ORDER BY userid</select-all-users>
<is-admin>SELECT userid FROM FTP_USER WHERE userid='{userid}' AND userid='admin'
</is-admin>
<authenticate>SELECT userpassword from FTP_USER WHERE userid='{userid}'</authenticate>
</db-user-manager>
五 数据库Sql脚本
CREATE TABLE FTP_USER (
userid VARCHAR(64) NOT NULL PRIMARY KEY,
userpassword VARCHAR(64),
homedirectory VARCHAR(128) NOT NULL,
enableflag BOOLEAN DEFAULT TRUE,
writepermission BOOLEAN DEFAULT FALSE,
idletime INT DEFAULT 0,
uploadrate INT DEFAULT 0,
downloadrate INT DEFAULT 0,
maxloginnumber INT DEFAULT 0,
maxloginperip INT DEFAULT 0
);
第一个需要特别注意的是Server元素的声明空间,若是直接复制官方网站上提供的声明空间,在Server元素里在配置
Bean的话就会报错,刚开始自己就是直接复制官方网站上的,最后把测试用例的配置文件的声明空间复制过来就对了。
第二个需要注意的是就是若在官方网站上复制下的配置代码,需要在Select语句里加入最大登陆数
(maxloginnumber),IP数字段(maxloginperip)。不然就要报一个列名不存在的Sql异常,
分享到:
相关推荐
Apache Ftpserver是一款开源的FTP服务器软件,由Apache软件基金会维护。它提供了高度可配置性和模块化设计,使得用户可以根据需求定制自己的FTP服务环境。在本资料包中,你将获得Apache Ftpserver的全套资源,包括...
需要根据实际的需求来修改这些配置选项,例如端口、用户管理等。 #### 连接数据库 为了实现对FTP用户的用户名、密码及源IP地址的有效验证,Apache FTP Server 可以与数据库进行集成。具体步骤如下: 1. 在 `%FTP_...
Apache FTPServer是一款开源的FTP服务器,它允许...通过上述步骤,你将能够成功配置Apache FTPServer与Mysql的集成,实现基于数据库的用户管理和权限控制。这样的配置不仅便于管理大量用户,还能提供更高级的安全特性。
- **用户管理器**:设置为 `<userManager class="org.apache.ftpserver.usermanager.impl.DatabaseUserManager"/>` 以便于与数据库进行集成。 - **虚拟主机**:定义 `<virtualHost>` 元素来指定服务器的虚拟主机...
Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...
Apache FTPServer是一个开源的FTP服务器项目,源自Apache MINA项目,提供了一种高效且可扩展的方式来实现FTP(文件传输协议)服务。这个"apache-ftpserver-1.0.6"版本是该软件的一个特定发布版,包含了在该版本中所...
2. 用户管理:实现`UserManager`接口,从MySQL数据库中读取用户信息。 3. 权限设置:定义用户权限策略,如基于角色的访问控制。 4. 数据库连接:配置JDBC数据源,使FTP服务器能够连接到MySQL。 5. 部署与启动:将...
Apache Ftp Server是一款开源的FTP服务器,它允许开发者在Java环境中构建自己的...同时,利用JDBC用户数据库和外部配置文件,可以实现用户管理的动态化和配置的集中管理。最后,FTPS的支持则为数据传输提供了安全保障。
在运行之前自己在MySQL上创建数据库,名如:ftpserver,再导入里面提供的ftpd-db.sql数据库脚本,顺便改改WEB-INF/config/jdbc.properties里面的数据库连接参数即可开始运行了。 演示用的FTP用户信息可根据自己的...
在本篇中,我们将深入探讨如何将Apache FTP Server与MySQL数据库集成,以实现更高级的安全性和用户管理功能。 Apache FTP Server本身是一个基于Java的FTP服务器,其核心组件是mod_ftp,它允许我们通过模块化的方式...
4. **用户管理**:用户信息通常保存在`conf/users.properties`,或者可以通过外部数据库进行管理。 5. **测试连接**:启动服务器后,使用FTP客户端连接到本地服务器(如127.0.0.1或localhost),检查是否能成功登录...
MINA FtpServer支持多种认证机制,包括基于文件的用户数据库、LDAP集成和自定义实现。开发者可以通过实现`UserManager`接口或继承已有的实现,如`BaseUserManager`,来定义自己的用户验证逻辑。 **命令处理** MINA ...
Apache Ftpserver Apache FtpServer是100%纯Java FTP服务器。它被设计为基于当前可用的开放协议的完整且 可移植的FTP服务器引擎解决方案。FtpServer可以作为Windows服务或Unix / Linux守护程序独立运行, 也可以...
Apache FtpServer支持多种用户管理方式,其中一种是通过数据库进行用户管理,这种方式能够更好地满足大规模部署时对于用户信息存储的需求。 ##### 数据库配置方式 1. **配置文件**:在`apache-ftpserver-1.0.5\res...
3. **用户和组管理**:Apache FTPServer支持多种身份验证机制,包括纯文本文件、数据库、甚至是外部的安全认证服务。用户和组可以被分配不同的权限,控制他们对服务器资源的访问。 4. **安全特性**:FTPServer支持...
Apache FTPServer是Apache MINA项目的一部分,是一个高度可扩展且完全Java实现的FTP服务器。它提供了对标准FTP协议的全面支持,并允许开发者通过API进行自定义,以满足特定需求。 2. **FTPServer API核心组件** -...
Apache FTPServer是开源的FTP服务器实现,它基于Java语言编写,具有良好的稳定性和可扩展性。 FTP服务器的工作原理: FTP服务器通过监听特定端口(通常是20和21)来等待客户端的连接请求。端口20用于数据传输,而...
Apache FTPServer支持多种认证模块,包括基于文件的用户数据库、Jaas认证等。 4. **FTP命令处理** FTP协议定义了一系列的命令,如`USER`、`PASS`、`CWD`、`LIST`、`RETR`、`STOR`等。在Java实现中,我们需要理解...