`
rmzdb
  • 浏览: 80355 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

【原】apache ftpServer源码解读与收获(二)

阅读更多

二.相关配置

1.服务器配置

server元素

<server xmlns="http://mina.apache.org/ftpserver/spring/v1"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://mina.apache.org/ftpserver/spring/v1 http://mina.apache.org/ftpserver/ftpserver-1.0.xsd"

    id="server"     

    max-logins="500"

    anon-enabled="false"

    max-anon-logins="123"

    max-login-failures="124"

    login-failure-delay="125">

...

</server>

元素 

描述 

是否必需 

默认值 

id 

XML配置文件中的唯一标识符

Y

 

max-logins 

最大并发用户数

N

21

max-anon-logins 

最大匿名用户数

N

10 

anon-enabled 

是否允许匿名用户登陆

N

true 

max-login-failures 

连接关闭前登陆失败后尝试次数

N

3

login-failure-delay 

登陆失败后的时间延迟(ms),用于限制配置暴力破解密码

N

500

 

listener元素

ListenerFtpServer中负责监听网络socket接口,当客户端连接后创建用户session、执行命令等。一个FtpServer可以同时拥有多个listerner,以下是一些例子: 

1)一个在21端口的默认监听; 

2)一个在21端口的超速通道监听,一个隐式的在22端口上的SSL监听

3)一个在内部IP超速通道监听,一个外部IPSSL监听

 

Listenername标识,默认Listener的名称是default

主要的网络配置表现在listener上,例如监听端口、SSL配置。

XML配置格式内,所有的监听器以listeners元素进行配置

 

<listeners>

    <nio-listener name="default" port="2222" implicit-ssl="true" idle-timeout="60" local-address="1.2.3.4">

        <ssl>

            <keystore file="mykeystore.jks" password="secret" key-password="otherSecret" />

            <truststore file="mytruststore.jks" password="secret"/>

        </ssl>

        <data-connection idle-timeout="60">

            <active enabled="true" local-address="1.2.3.4" local-port="2323" ip-check="true">

            <passive ports="123-12"address="1.2.3.4" external-address="1.2.3.4" />

        </data-connection>

        <blacklist>1.2.3.0/16, 1.2.4.0/16, 1.2.3.4</blacklist>

    </nio-listener>

</listeners>

 

nio元素 

装配FtpServer的监听器叫做nio-listener,因为它是基于Java NIO的以提升性能和规模

元素 

描述 

是否必需 

默认值 

name 

监听名称,如果是default,它会覆盖默认的监听器

Y

 

port 

监听器接受连接的端口

N

21

local-address 

监听器绑定的服务器地址

N

All available 

implicit-ssl 

如果使用隐式的SSL,其值为true 

N

false 

idle-timeout 

非活跃客户端断开时间。如果值设为0,则闲置时间不可用(一个客户端可以永远闲置,如果没有从服务器断开)如果一个较低的最大闲置时间配置给用户(比如使用PropertiesUserManager闲置时间配置),它会覆盖listener.这样listener值强加以更高的阈值,但是低层值可以提供给每个用户。

N

300

 

ssl元素

对于需要FTPS 支持的Listener必须

元素 

描述 

是否必需 

默认值 

protocol

使用SSL协议,支持有 SSL 和TLS

N

TLS

client-authentication

是否客户端认证?支持的值有:“NEED”,“WANT”和 NONE

 

N

NONE

enabled-ciphersuites

对于本连接的一个可用的逗号分隔的密码组件列表。可用的加密组件依赖于所采用的Java版本

N

所有加密组件均可用

 

keystore元素

如果提供了ssl元素,它将是必须的。它为密钥存储提供配置,用于查找私钥和服务器证书。

元素 

描述 

是否必需 

默认值 

file

密钥存储路径

Y

 

password

密钥存储密码

Y

 

key-password

密钥存储中的密钥密码

N

密钥存储密码

key-alias

密钥存储中key的别名

N

Uses first key found

type

密钥存储类型

N

JKS

algorithm

密钥存储算法

N

SunX509

 

truststore 

该元素用于配置信任存储,以定位信任的证书。 

元素 

描述 

是否必需 

默认值 

file

密钥存储路径

Y

 

password

密钥存储密码

N

无密码可读取证书

type

密钥存储类型

N

JRE key store default type, normally JKS

algorithm

密钥存储算法

N

SunX509

 

data-connection元素

为数据连接提供配置 

元素 

描述 

是否必需 

默认值 

idle-timeout

数据连接要关闭最大闲置时间

N

300

 

active元素

为积极数据连接提供配置 

元素 

描述 

是否必需 

默认值 

enabled

如果积极数据连接不被允许,值为false

N

true

local-address

服务器创建连接时使用的本地地址

N

Any available 

local-port

服务器创建连接时使用的本地端口

N

Any available 

ip-check

服务器是否监察数据连接IP与控制socket的IP相同?

N

false

 

passive元素

为消极数据连接提供配置 

元素 

描述 

是否必需 

默认值 

ports

服务器创建消极数据连接时使用的本地端口

N

Any available port

address

服务器监听消极数据连接的地址

N

与控制socket地址相同

external-address

服务器声明在PASV答复中监听的地址。该属性配置在当服务器在NAT防火墙后,客户端看到的IP不同于服务使用的IP时很有用

N

 

 

blacklist元素

提供对一些IP地址的访问受限

2.用户权限配置

 ftpServer对用户权限的管理,提供了数据库持久化存储管理跟文件持久化存储管理。

数据库持久化用户管理配置:

元素 

描述 

是否必需 

默认值 

encrypt-passwordsdb-user-manager 元素的属性

它表明了密码是如何存储的。可用值为:clear普通文本,MD5哈希算法或者salted哈希盐化密码。建议采用salted

N

md5

data-source 

普通Spring bean配置的数据源

Y

 

insert-user

SQL语句插入一个新的用户,所有的动态值在运行时会被取代。

N

 

update-user

SQL语句插入修改一个用户,所有的动态值在运行时会被取代

Y

 

delete-user 

SQL语句删除一个用户,所有的动态值在运行时会被取代。

Y

 

select-user 

SQL语句查询一个用户,所有的动态值在运行时会被取代。

Y

 

select-all-users 

SQL语句插入所有用户,所有的动态值在运行时会被取代

Y

 

is-admin 

查询一个用户是否是管理员用户,所有的动态值在运行时会被取代。

Y

 

authenticate 

SQL语句认证一个用户,所有的动态值在运行时会被取代。

Y

 

文件持久化存储管理配置:

元素 

描述 

是否必需 

默认值 

encrypt-passwordsdb-user-manager 元素的属性

它表明了密码是如何存储的。可用值为:clear普通文本,MD5哈希算法或者salted哈希盐化密码。建议采用salted

N

md5

file

存储用户的properties文件路径

 

N

File跟url至少要有一个必须

url

存储用户的propertiesURL

N

同上

以上配置信息,详见官方网站文档。

分享到:
评论

相关推荐

    apache ftpserver笔记

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache MINA项目的一部分,用于构建高性能、可扩展的网络应用。这篇笔记主要围绕Apache FTPServer的使用、配置和相关开发进行讲解。 首先,Apache FTPServer提供了...

    Apache FtpServer配置详解

    从零开始介绍Apache FtpServer,并一步一步教你配置Apache FtpServer,更高级的应用,教你用写代码控制Apache FtpServer及集成到自己的应用中 &lt;!--ftp端口 --&gt; &lt;!--绑定的服务器IP地址,多网卡的时候使用...

    Apache Ftpserver 全套

    在本资料包中,你将获得Apache Ftpserver的全套资源,包括源码、jar包以及配置说明,这将帮助你深入了解并使用这个强大的FTP服务器。 首先,`FtpServer配置详解.pdf`文档是关于Apache Ftpserver配置的详细指南。这...

    apache FTPserver 安装包

    Apache FTPServer是一款开源的FTP服务器软件,它是Apache软件基金会的一部分,设计用于提供可靠且高效的文件传输服务。在本文中,我们将深入探讨如何安装和配置Apache FTPServer,以及它的一些核心特性。 首先,让...

    Apache FTPServer 1.1.0 + SpringMVC 2.5完美整合项目完整源码

    这是在eclipse上创建的项目,下载源码包导入即可。 在运行之前自己在MySQL上创建数据库,名如:ftpserver,再导入里面提供的...有了这套源码,不出十分钟你就可以搞懂怎么在你的Spring项目里面整合Apache FTPServer了。

    apache ftpserver讲解

    - **用户管理器**:设置为 `&lt;userManager class="org.apache.ftpserver.usermanager.impl.DatabaseUserManager"/&gt;` 以便于与数据库进行集成。 - **虚拟主机**:定义 `&lt;virtualHost&gt;` 元素来指定服务器的虚拟主机...

    Apache_FtpServer配置详解

    Apache_FtpServer配置详解

    apache ftpserver Mysql配置

    Apache FTPServer是一款开源的FTP服务器,它允许...通过上述步骤,你将能够成功配置Apache FTPServer与Mysql的集成,实现基于数据库的用户管理和权限控制。这样的配置不仅便于管理大量用户,还能提供更高级的安全特性。

    apache ftpserver使用讲解

    - `org\apache\ftpserver\usermanager\impl\AbstractUserManager.class` 修改这些类的主要目的是让其支持新的表结构,并实现在验证过程中对源IP地址的检查。 通过以上步骤,我们可以有效地配置并使用Apache FTP...

    apache ftp server

    2. 获取Apache FTP Server的源码或二进制包,解压到合适的目录。 3. 配置服务器的主配置文件(通常是`server.properties`),包括监听地址、端口、用户认证和权限设置等。 4. 可选地,配置VFS模块以连接不同的文件...

    Apache Ftp Server使用说明

    1. 下载:首先,你需要从Apache官方网站(http://mina.apache.org/ftpserver/download.html)下载最新版本的Apache FtpServer。 2. 解压:下载后,将压缩包解压到任意目录。 3. 配置环境变量:为了方便运行,你可以...

    Apache FtpServer 1.0.6

    Apache FtpServer是一个100%纯Java的、基于现有开放式协议基础上、完整、小巧的FTP服务器。此外,FtpServer还可以作为Windows服务器、Unix / Linux后台程序或是被嵌入在Java应用程序而独立运行。有了MINA...

    Apache FtpServer详细配置.zip

    以下是对Apache FtpServer配置的详细解读。 **一、安装与启动** 在开始配置Apache FtpServer之前,你需要先下载并安装它。这通常涉及到以下几个步骤: 1. 下载Apache FtpServer的最新版本。 2. 解压缩下载的文件到...

    (转)Java使用Apache FtpServer实现嵌入式FTP服务器

    它的使用方式与Apache FtpServer类似,需要添加依赖并调用相应的API方法。 总结起来,Apache FtpServer是Java开发人员实现FTP服务器功能的一个强大工具。通过简单的配置和API调用,我们可以轻松地在Java应用中嵌入...

    apache ftpserver embeded 工程版

    apache ftpserver 源码嵌入eclipse工程版,所有配置已配好,myserver.java右键 run as java aplication 运行即可。登录名:admin 密码:admin 还有一个名字一样的资源,也是我上传的,那个账号找不回来了

    Apache FTPServer的配置与使用&API

    1. **安装与下载**:从Apache官网下载最新版本的Apache FTPServer,解压后得到源代码和相关文档。 2. **环境准备**:确保系统已安装Java运行环境(JRE)和Java开发工具集(JDK),因为FTPServer是用Java编写的。 3...

    apache ftpserver

    6. **日志记录**:Apache FTPServer可以与各种日志框架集成,如Log4j,提供详细的审计日志,便于追踪和分析服务器的运行情况。 7. **虚拟主机**:FTPServer支持虚拟主机功能,允许在一个服务器上运行多个独立的FTP...

    Java 嵌入apache.ftpserver.FtpServer 实现FTP服务

    Java中的Apache FtpServer库为开发人员提供了一个强大的框架,用于在Java应用程序中轻松地创建和管理FTP服务器。Apache FtpServer提供了丰富的API,可以定制服务器的行为,满足各种需求。本篇文章将深入探讨如何利用...

    Apache Ftp Server与spring框架融合

    这篇文章将深入探讨如何将Apache Ftp Server与Spring框架结合,以提高开发效率和系统的可维护性。 首先,Apache Ftp Server的核心组件是`FtpServer`接口,它定义了服务器的基本操作,如启动、停止和获取服务器状态...

Global site tag (gtag.js) - Google Analytics