Apache FtpServer 数据库管理用户实现

   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异常,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值