On Fri, Sep 30, 2011 at 6:35 PM, Hadrian Zbarcea <[email protected]> wrote: > One more aspect Claus should have mentioned is that we cannot accept > contributions with dependencies on non-approved licenses [1]. From what I > see jzlib is licensed under LGPL [2]. >
Ah yeah. See step 2 at the components developer guide. http://camel.apache.org/add-new-component-guide.html > Regards, > Hadrian > VP, Apache Camel > > [1] http://www.apache.org/legal/resolved.html#category-x > [2] http://www.jcraft.com/jzlib/LICENSE.txt > > > On 09/30/2011 04:03 AM, Claus Ibsen wrote: >> >> Hi >> >> Thanks for sharing this. >> >> Do you mind creating a JIRA ticket and attach your code as a file to >> the JIRA, and mark [x] in grant license to Apache. >> That's the procedure for us to accept patches from the community. >> >> You can read more here >> http://camel.apache.org/contributing.html >> >> And a link to JIRA is herre >> http://camel.apache.org/support.html >> >> >> On Thu, Sep 29, 2011 at 5:18 PM, Ujeen<[email protected]> wrote: >>> >>> Hi Camel gurus. >>> >>> I've got some small improvement for the SFTP component which probably >>> might >>> be handy. >>> >>> It appeared that our sftp share we get files from doesn't support the ssh >>> password auth method and we're not allowed to put the public key to >>> there. >>> So the only ssh auth method we can use is the keyboard-interactive. >>> Unfortunately the SFTP camel component doesn't support this. >>> However this can be easily fixed simply by providing the Jsch session >>> with >>> both the com.jcraft.jsch.UserInfo and >>> com.jcraft.jsch.UIKeyboardInteractive >>> interfaces. The UIKeyboardInteractive has the only one >>> promptKeyboardInteractive method which returns String[] containing the >>> password entered by user interactively. In our case I simply return a >>> password. >>> Here is how I implemented this: >>> >>> SftpOperations operations = new SftpOperations() { >>> protected Session createSession(final RemoteFileConfiguration >>> configuration) throws JSchException { >>> final Session result = super.createSession(configuration); >>> if(compression> 0&& compression< 10) { >>> result.setConfig("compression.s2c", >>> "[email protected],zlib,none"); >>> result.setConfig("compression.c2s", >>> "[email protected],zlib,none"); >>> result.setConfig("compression_level", >>> Integer.toString(compression)); >>> } >>> final UserInfo userInfo = result.getUserInfo(); >>> result.setUserInfo(new ExtendedUserInfo() { >>> public String getPassphrase() {return >>> userInfo.getPassphrase();} >>> public String getPassword() {return >>> userInfo.getPassword();} >>> public boolean promptPassword(String s) {return >>> userInfo.promptPassword(s);} >>> public boolean promptPassphrase(String s) {return >>> userInfo.promptPassphrase(s);} >>> public boolean promptYesNo(String s) {return >>> userInfo.promptYesNo(s); } >>> public void showMessage(String s) >>> {userInfo.showMessage(s);} >>> public String[] promptKeyboardInteractive( >>> String destination, String name, >>> String instruction, String[] prompt, >>> boolean[] echo) { >>> return new String[] { this.getPassword() }; >>> } >>> }); >>> return result; >>> }}; >>> >>> >>> Also as you could note I set the compression level there. Since we're >>> moving >>> really huge files (2G and longer) via sftp I thought that setting the ssh >>> compression might be a good idea. It really helps. I pass them via >>> endpoint's uri. This requires the zlib kib to be in the classpath >>> <dependency> >>> <groupId>com.jcraft</groupId> >>> <artifactId>jzlib</artifactId> >>> <version>1.0.7</version> >>> </dependency> >>> >>> That's it. I hope this is useful for you. Sorry if it's not. >>> >>> Thanks for the Camel. >>> >>> >>> -- >>> View this message in context: >>> http://camel.465427.n5.nabble.com/The-SFTP-component-the-keyboard-interactive-auth-method-support-tp4853523p4853523.html >>> Sent from the Camel - Users mailing list archive at Nabble.com. >>> >> >> >> > -- Claus Ibsen ----------------- FuseSource Email: [email protected] Web: http://fusesource.com Twitter: davsclaus, fusenews Blog: http://davsclaus.blogspot.com/ Author of Camel in Action: http://www.manning.com/ibsen/
