/*
* Copyright 2015 the original author or authors.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.cloud.stream.module.sftp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.sftp.session.DefaultSftpSessionFactory;
/**
* SFTP Session factory configuration.
*
* @author Gary Russell
*/
@Configuration
@EnableConfigurationProperties(SftpSessionFactoryProperties.class)
public class SftpSessionFactoryConfiguration {
@Autowired
private SftpSessionFactoryProperties config;
@Bean
public DefaultSftpSessionFactory sftpSessionFactory() {
DefaultSftpSessionFactory sftpSessionFactory = new DefaultSftpSessionFactory();
sftpSessionFactory.setHost(this.config.getHost());
sftpSessionFactory.setPort(this.config.getPort());
sftpSessionFactory.setUser(this.config.getUsername());
sftpSessionFactory.setPassword(this.config.getPassword());
sftpSessionFactory.setAllowUnknownKeys(this.config.isAllowUnknownKeys());
if (this.config.getKnownHostsExpression() != null) {
sftpSessionFactory.setKnownHosts("#{" + this.config.getKnownHostsExpression() + "}");
}
return sftpSessionFactory;
}
}