设为首页 收藏本站
查看: 783|回复: 0

[经验分享] Apache FtpServer 数据库管理用户实现

[复制链接]

尚未签到

发表于 2017-1-6 10:54:15 | 显示全部楼层 |阅读模式
  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异常,

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-324628-1-1.html 上篇帖子: 【汇总】Apache压测命令ab 下篇帖子: apache-commons-beanutils的基本使用操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表