如何在Apache FtpServer基础上增加或者修改FTP命令

<p class="MsoNormal"><span>项目由于需要支持大文件传输和下载,用到了开源的</span><span lang="EN-US">Apache FtpServer</span><span>(</span><span lang="EN-US">[url=http://mina.apache.org/ftpserver/]http://mina.apache.org/ftpserver/[/url]</span><span>)。但是,为了配合客户端使用,这些</span><span lang="EN-US">FTP</span><span>命令并不能满足需求,即需要增加一些命令,也需要删除或者修改一些对于整个系统可能带来安全问题的命令。</span>

<p class="MsoNormal"><span>二、修改</span><span lang="EN-US">Apache
FtpServer</span><span>的大致思路</span>

<p class="MsoNormal"><span lang="EN-US">2. </span><span>自定义一个类</span><span lang="EN-US">MyCommandFactoryFactory</span><span>,对</span><span lang="EN-US">DEFAULT_COMMAND_MAP</span><span>进行初始化控制,增加自己定义的命令。</span>

<p class="MsoNormal"><span lang="EN-US">3. </span><span>在</span><span lang="EN-US">server</span><span>启动之前,重新设置</span><span lang="EN-US">CommandFactory</span><span>。</span>
serverFactory.setCommandFactory((new
MyCommandFactoryFactory()).createCommandFactory());</span>

<p class="MsoNormal"><span lang="EN-US"></span>

<p class="MsoNormal"><span>对于定制后的</span><span lang="EN-US">FtpServer</span><span>,因为命令已经改变,使用传统的一些</span><span lang="EN-US">FTP</span><span>工具就无法对</span><span lang="EN-US">Server</span><span>进行测试了。这就需要自己写一个同样是定制过的简单的</span><span lang="EN-US">Ftp</span><span>客户端来进行测试。</span><span lang="EN-US">Apache</span><span>提供的</span><span lang="EN-US">commonnet</span><span>包(</span><span lang="EN-US">[url=http://commons.apache.org/net/]http://commons.apache.org/net/[/url]</span><span>)对于</span><span lang="EN-US">Ftp</span><span>协议进行了支持,并且是开源的,所以可以直接修改</span><span lang="EN-US">commonnet</span><span>的代码,提供一个定制版本的</span><span lang="EN-US">commonnet</span><span>,以对定制的</span><span lang="EN-US">Ftp</span><span>命令进行支持。然后再使用定制版本的</span><span lang="EN-US">commonnet</span><span>写一个简单的</span><span lang="EN-US">Ftp</span><span>客户端。</span>

<p class="MsoNormal"><span>四、修改</span><span lang="EN-US">commonnet</span><span>代码的大致思路</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>代码不多,很容易懂。需要修改或者增加命令。</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>这个类封装了</span><span lang="EN-US">Ftp</span><span>客户端的主要功能。增加或者修改具体的方法。</span>

<p class="MsoNormal"><span lang="EN-US"><span> </span></span><span>这个类是对外提供服务的。增加或者修改具体的方法。</span>

<p class="MsoNormal"><span lang="EN-US"><br></span>
<span>注:因为不能涉及具体业务,所以写的不够详细,见谅。基本思路已经写出来了,按照这个思路,再仔细看看代码,应该没问题的。</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值