[
https://issues.apache.org/jira/browse/CAMEL-6514?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-6514.
--------------------------------
Resolution: Fixed
Thanks for reporting and with the solution.
> SFTP: NPE if no private key file is supplied
> --------------------------------------------
>
> Key: CAMEL-6514
> URL: https://issues.apache.org/jira/browse/CAMEL-6514
> Project: Camel
> Issue Type: Bug
> Components: camel-ftp
> Affects Versions: 2.10.4, 2.11.0
> Reporter: Joerg Kessler
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 2.10.7, 2.11.1, 2.12.0
>
>
> Hi,
> a NPE is thrown if no private key file is supplied in the configuration for
> SFTP. The error is
> Caused by: java.lang.NullPointerException: while trying to get the length of
> an array loaded from local variable 'foo'
> at com.jcraft.jsch.Buffer.putString(Buffer.java:59)
> I have analysed the code a bit and found that the problem is caused
> by the class SftpOperations. The method createSession sets the userInfo for
> the seesion by an inline class. Here the method promptKeyboardInteractive
> does not work correctly if no private key file is supplied. In that case JSCH
> switches to user/pw authorization and this method is called. But since there
> is no password maintained the configation object returns NULL. The present
> implementation adds it to the string array causing the error in JSCH. JSCH
> either wants a NULL string array or an empty string array (I have tested
> both). So the code should look e.g. as follows:
> public String[] promptKeyboardInteractive(String destination,
> String name, String instruction, String[] prompt, boolean[] echo) {
> String password = configuration.getPassword();
> if (password == null) {
> return new String[0];
> } else {
> return new String[] { password };
> }
> }
> With that change JSCH returns
> Caused by: java.io.FileNotFoundException: ./data/ssh/id_rsa (No such file or
> directory)
> at java.io.FileInputStream.open(Native Method)
> and that is the real cause of the error
> Best Regards,
> Jörg
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira