1. 程式人生 > >apache ftpServer原始碼解讀與收穫(二)

apache ftpServer原始碼解讀與收穫(二)

二.相關配置

1.伺服器配置

server元素

<serverxmlns="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-listenername="default"port="2222"implicit-ssl="true"idle-timeout="60"local-address="1.2.3.4">

<ssl>

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

<truststorefile="mytruststore.jks"password="secret"/>

</ssl>

<data-connectionidle-timeout="60">

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

<passiveports="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

相關推薦

apache ftpServer原始碼解讀收穫

二.相關配置 1.伺服器配置 server元素 <serverxmlns="http://mina.apache.org/ftpserver/spring/v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLo

看透SpringMVC原始碼分析實踐

一、Tomcat的頂層結構及啟動過程 1.Tomcat的頂層結構        Tomcat中最頂層的容器叫Server,代表整個伺服器,Server至少包含一個Service用於具體的服務。Service主要包含兩部分,Connector和Conta

讀SDWebImage原始碼第二天的收穫思考

4.如果找到了就直接顯示給當前檢視,如果沒有找到就就去通過操作佇列進行下載。 那麼接下來我們看一下是如何下載的? 思考? 如果不做

Spring IOC原理原始碼解析(@Autowired原理詳解 :標識屬性方法)

原始碼推薦看這篇部落格的時候開啟Spring原始碼,一邊看原始碼,一邊看部落格上程式碼的關鍵處的註釋,這樣能更好的理解Spring IOC的流程及內部實現和使用方法。如果你對IOC的原理有些瞭解,則這些註釋能幫你更深入的理解其實現方式。 Spring容器在每個

Spring核心探索總結:Spring容器初始化原始碼探索

Spring容器概述 容器是spring的核心,Spring容器使用DI管理構成應用的元件,它會建立相互協作的元件之間的關聯,負責建立物件,裝配它們,配置它們並管理它們的生命週期,從生存到死亡(在這裡,可能就是new 到 finalize())。 Sprin

mysql大數據備份還原

mysql備份 還原 備份工具使用xtrabackup mysql大數據備份和增量備份及還原Xtrabackup實現是物理備份,而且是物理熱備目前主流的有兩個工具可以實現物理熱備:ibbackup和xtrabackup ;ibbackup是需要授權價格昂貴

JVM高級特性實踐:對象存活判定算法引用 回收

添加 引用計數器 程序計數器 正文 bmc 進入 block 結構 內存 關於垃圾回收器GC(Garbage Collection),多數人意味它是Java語言的伴生產物。事實上,GC的歷史遠比Java悠遠,於1960年誕生在MIT的Lisp是第一門真正使用內存動態分配和垃

Spring Boot 揭秘實戰 數據存儲篇 - 聲明式事務管理

public rollback long tar jpa oid config 新的 autowire 文章目錄 1. 聲明式事務 2. Spring Boot默認集成事務 3. 實戰演練4. 源代碼 3.1. 實體對象 3.2. DAO 相關 3.3. Service

mybatis批量增加刪除——

space str val Coding 安全知識 src odi pri 題集 1.首先應該明白,mybatis增刪改返回值是int型的影響行數的值 mapper接口 package cn.xm.mapper; import java.util.Lis

讀書筆記--C陷阱缺陷

ase 結果 erro bit 使用 功能 錯誤 多層 gnu 第二章 1. 理解函數聲明 書中分析了復雜的類型聲明方式,也說明了使用typedef聲明會更好理解,推薦大家使用typedef進行函數聲明。 書中類型分析一層一層挖掘,讓讀者可以理解多層嵌套的類型含義,有

MySQLOracle---日期對比MySQL

val replace nbsp rac oracl 日期 align mysql datetime MySQL與Oracle的日期函數對比(一) 一、SQL 短日期格式:yyyy-m-d SELECT REPLACE(CONVERT(varchar(10),getda

前端工程化思考實踐

run test 代碼 -m link 本地 生成頁面 函數 說我 4. 前端工程化開發實踐 由於Nodejs 、npm的環境搭建往上很多,這裏就不過多介紹它們了。 這裏我們將更多介紹FIS3、RequireJS 、r.js。 4.1 模塊化開發:

SQL註入漏洞的分析利用

manage 如果 得到 nio 學習筆記 sql註入 .com 密碼 vpd Access手工註入 1.實驗環境:實驗平臺:小旋風ASPWeb服務器目標網站:南方數據2.02.打開網站,隨意點開一個頁面看到?id=4說明有參數傳遞,用的是get方法,可能是一個註入點加入判

spring cloud實戰思考 微服務之間通過fiegn上傳多個文件1

jar 多文件 上傳文件 ret nmap spa 不同 port 問題 需求場景: 微服務之間調用接口一次性上傳多個文件。 上傳文件的同時附帶其他參數。 多個文件能有效的區分開,以便進行不同處理。   Spring cloud的微服務之間接口調用使用Feign。原裝的

微服務架構的優勢不足

頁面 中間 ima 直接 docke 連接 包含 後臺服務 駕駛 微處理架構——處理復雜事物   許多公司,比如Amazon、eBay和NetFlix,通過采用微處理結構模式解決了上述問題。其思路不是開發一個巨大的單體式的應用,而是將應用分解為小的、互相連接的微服務。   

持續部署之jenkinsgitlab

info 構建 分享 cred 按鈕 tla 使用 自動 源碼管理 測試部署項目,此項目配置成直接在gitlab中拉取代碼至Jenkins服務器中,在工作區域可見,項目名稱為auto-deloy 新建-->填寫項目名稱-->構建一個自由風格的軟件項目-->

JPA核心類使用

com 同步 ont itl pen create 遊離 col 執行 點擊訪問:JPA環境配置(一) Persistence: Persistence用於獲取EntityManagerFactory實例,這個類中包含一個名為createEntityManagerFac

進程PCB

spa 服務 方便 進程創建 .com lin 結束 滿足 creat 進程控制 進程控制的基本過程: 進程的創建 進程的終止 進程的阻塞與喚醒 進程的掛起和激活 進程中的親屬關系 一般使用進程樹表示:

HTML的文檔結構語法

單選 eset 跳轉頁面 right 寬度 lin tab ren refresh 3.7 超鏈接標記 語法:<a 屬性=“值”>對當前鏈接的描述</a> 作用:網頁進行跳轉 常用的屬性: Href:鏈接的網址或ip或地址 值:就是具體

資料結構演算法--遞迴

遞迴條件: 1.遞迴條件:每次調自己,然後記錄當時的狀態 2.基準條件:執行到什麼時候結束遞迴,不然遞迴就會無休止的呼叫自己, 遞迴的資料結構:棧(先進先出)和彈夾原理一樣,每一次呼叫自己都記錄了當時的一種狀態,然後把這種狀態的結果返回。 棧相對應的資料結構:佇列(先進後出