Search code examples
javaspringspring-integrationftpsspring-integration-sftp

SFTP Spring integration issue 2 Too many authentication failures for *username*


We have one SFTP server where we reading file particular folder on this server.I am using user/password based authentication do I need to provide some other properties also in DefaultSftpSessionFactory. Below is my configuration.

<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" />

Its work fine for sometime but it give below error intermittently.

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

I am not sure what causing this issue.Is there any issue with SFTP SpringIntegration configuration?Do I need to provide some other properties also in DefaultSftpSessionFactory class? Or is there any issue with SFTP server ? can anybody guide me to resolve this issue.


Solution

  • Reason for failure is user Id was block on the server.After releasing block its working fine.