0

Nous avons un serveur SFTP sur lequel nous lisons un fichier particulier sur ce serveur. J'utilise une authentification basée sur l'utilisateur/mot de passe Dois-je fournir d'autres propriétés dans DefaultSftpSessionFactory . Voici ma configuration.Problème d'intégration SFTP Spring 2 Trop d'échecs d'authentification pour * nom d'utilisateur *

<beans:bean id="sftpSessionFactory" 
    class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory"> 
    <beans:property name="host" value="${turboFtp.host}" /> 
    <beans:property name="allowUnknownKeys" value="true" /> 
    <beans:property name="user" value="${turboFtp.username}" /> 
    <beans:property name="password" 
     value="#{ftpdecrypter.decryptPassword()}" /> 
</beans:bean> 

<beans:bean id="ftpdecrypter" 
    class="com.deere.calibrateddevices.config.FTPPasswordDecryptConfig"> 
</beans:bean> 

<int-sftp:inbound-streaming-channel-adapter 
    id="sftpTurboHoneywellAdapter" channel="turboReceiveChannel" 
    session-factory="sftpSessionFactory" filename-regex="^.*\.(dat|DAT)$" 
    remote-file-separator="/" remote-directory-expression="'${turboXMLFileFtpServerLoc}'" 
    auto-startup="true"> 
    <int:poller fixed-rate="${turboPollarInterval}" 
     max-messages-per-poll="1" /> 
</int-sftp:inbound-streaming-channel-adapter> 

<int:channel id="sftpOutboundChannel" /> 

<int-sftp:outbound-gateway command="rm" 
    reply-channel="nullChannel" session-factory="sftpSessionFactory" 
    request-channel="sftpOutboundChannel" remote-file-separator="/" 
    expression="headers['file_remoteDirectory'] + headers['file_remoteFile']"> 
</int-sftp:outbound-gateway> 

<integration:service-activator id="calibratedDataServiceActivator" 
    input-channel="turboReceiveChannel" ref="turboFtpFileProcessor" 
    method="processTurboCalibratedDeviceFile" /> 

Son travail bien pour un certain temps mais il donne l'erreur ci-dessous par intermittence.

org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller$1.run(AbstractPollingEndpoint.java:353) 
      at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:55) 
      at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:50) 
      at org.springframework.integration.util.ErrorHandlingTaskExecutor.execute(ErrorHandlingTaskExecutor.java:51) 
      at org.springframework.integration.endpoint.AbstractPollingEndpoint$Poller.run(AbstractPollingEndpoint.java:344) 
      at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) 
      at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81) 
      at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
      at java.util.concurrent.FutureTask.run(Unknown Source) 
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source) 
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
      at java.lang.Thread.run(Unknown Source) 
    Caused by: java.lang.IllegalStateException: failed to create SFTP Session 
      at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:393) 
      at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:57) 
      at org.springframework.integration.file.remote.RemoteFileTemplate.execute(RemoteFileTemplate.java:433) 
      ... 24 more 
    Caused by: java.lang.IllegalStateException: failed to connect 
      at org.springframework.integration.sftp.session.SftpSession.connect(SftpSession.java:273) 
      at org.springframework.integration.sftp.session.DefaultSftpSessionFactory.getSession(DefaultSftpSessionFactory.java:388) 
      ... 26 more 
     Caused by: com.jcraft.jsch.JSchException: SSH_MSG_DISCONNECT: 2 Too many authentication failures for *username* 
     at com.jcraft.jsch.Session.read(Session.java:1004) 
     at com.jcraft.jsch.UserAuthPassword.start(UserAuthPassword.java:91) 
     at com.jcraft.jsch.Session.connect(Session.java:470) 
     at com.jcraft.jsch.Session.connect(Session.java:183 

Je ne suis pas sûr de ce que la cause de cette issue.Is il un problème avec la configuration SFTP SpringIntegration? Ai-je besoin de fournir d'autres propriétés également en classe DefaultSftpSessionFactory? Ou y a-t-il un problème avec le serveur SFTP? quelqu'un peut-il me guider pour résoudre ce problème.

+0

Vérifiez si [this] (https://bugs.eclipse.org/bugs/show_bug.cgi?id=425672) fonctionne pour vous. –

+0

Non je suis confronté à un problème avec FTPS –

+0

SFTP et FTPS sont des protocoles complètement différents. JSCH est une bibliothèque SFTP. Vous utilisez SFTP, pas FTPS. – Kenster

Répondre

0

Le motif de l'échec est que l'ID de l'utilisateur a été bloqué sur le serveur.Après la libération, le bloc fonctionne correctement.