2016-11-21 99 views
0

當我通過TLS身份驗證時,我無法從ftp服務器下載文件。我已經使用DefaultFtpsSessionFactory會話進行TLS身份驗證。每次輪詢都會啓動「發生握手發生錯誤」。如何通過ftp通過彈簧集成通過ftp身份驗證來下載文件

雖然我能夠通過正常的Java類下載使用apache.common.net的FTPSClient文件。

我的XML配置是這樣的: -

<bean id="ftpClientFactory" 
     class="org.springframework.integration.ftp.session.DefaultFtpsSessionFactory"> 
     <property name="host" value="52.172.153.35"/> 
     <property name="port" value="21"/> 
     <property name="username" value=""/> 
     <property name="password" value=""/> 
     <property name="clientMode" value="2"/> 
     <property name="bufferSize" value="100000"/> 

<int-ftp:inbound-channel-adapter id="plannedFtpChannel" 
     session-factory="ftpClientFactory" filename-pattern="*.xls" local-filter="plannedFilter" auto-startup="true" 
     auto-create-local-directory="true" delete-remote-files="false" remote-directory="/planned" local-directory="/DataFiles/planned" > 
     <int:poller fixed-delay="10000"> 
     </int:poller> 
</int-ftp:inbound-channel-adapter> 

我收到錯誤,如: -

的TaskScheduler-6,收到EOFException類:錯誤的TaskScheduler-6,處理異常:javax.net.ssl.SSLHandshakeException:握手期間遠程主機關閉連接%%失效:[Session-4,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384] taskScheduler-6,SEND TLSv1.2 ALERT:fa TAL介紹= handshake_failure

的TaskScheduler-2,READ:解密之後TLSv1.2工作應用程序數據,長度= 160 軟墊明文:LEN = 160 0000:BE D8 80 B6 50 63 4A A1 EA 00 DA 97 A8 03 9D 39 .... PcJ ........ 9 0010:34 35 30 20 54 4C 53 20 73 65 73 73 69 6F 6E 20 450 TLS會話 0020:6F 66 20 64 61 74 61 20 63 6F 6E 6E 65 63 74數據的69 connecti 0030:6F 6E 20 68 61 73 20 6E 6F 74 20 72 65 73 75 6D上沒有resum 0040:65 64 20 6F 72 20 74 68 65 20 73 65 73 73 69 6F ED或sessio 0050:6E 20 64 6F 65 73 20 6E 74 6F 20 6D 61 74 63 68 n不匹配 0060:20 74 68 65 20 63 6F 6E 74 72 6F 6C 20 63 6F 6E控制CON 0070:6E 65 63 74 69 6F 6E 0D 0A BA 4A 0F 0F 95 88 44個nection..J ..... d 0080:B4 8E D0 90 02 B1 1C DC 78 E1 76 C1 ED BA 2F 82 ........ xv ../。 0090:3A 19 0B FA F2 09 61 6C FB 06 06 06 06 06 06 06:.....人........ 的TaskScheduler-2,接收EOFException類:忽略 的TaskScheduler-2,稱爲closeInternal (false) taskScheduler-2,再次關閉調用; state = 5

在這裏會話重用需要啓用,只要我已經GOOGLE了。 但是,不能這樣做! 任何建議。

+0

正如評論[你剛剛刪除的其他問題](http://stackoverflow.com/questions/40676862/how-to-connect-through-ftp-with-tls-authentication-in-spring-integration -for-fil),請參閱[這個問題/答案](http://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-會話)。 –

+0

無法使用xml進行配置,因爲它是在那裏建議的。? –

+0

你需要解釋你的意思。您需要創建自定義會話工廠。 –

回答

0

下面我們就來覆蓋的getSession()和DefaultFtpssessionFactory的createClient()也是爲了達到定製FTPSClient!它的工作很好,這個配置。