package nonautoscan.com.aol.micro.server;
import java.io.IOException;
import java.net.URL;
import java.util.Properties;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.Resource;
import org.springframework.core.io.UrlResource;
import com.aol.micro.server.config.SSLProperties;
@Configuration
public class SSLConfig {
private static String keyStoreFile = "keyStoreFile";
private static String keyStorePass = "keyStorePass";
private static String trustStoreFile = "trustStoreFile";
private static String trustStorePass = "trustStorePass";
private static String keyStoreType = "keyStoreType";
private static String keyStoreProvider = "keyStoreProvider";
private static String trustStoreType = "trustStoreType";
private static String trustStoreProvider = "trustStoreProvider";
private static String clientAuth = "clientAuth";
private static String ciphers = "ciphers";
private static String protocol = "protocol";
@Bean
public static SSLProperties sslProperties() throws IOException {
PropertiesFactoryBean factory = new PropertiesFactoryBean();
URL url = SSLConfig.class.getClassLoader().getResource("ssl.properties");
if (url != null) {
Resource reource = new UrlResource(url);
factory.setLocation(reource);
factory.afterPropertiesSet();
Properties properties = factory.getObject();
return SSLProperties.builder()
.keyStoreFile(properties.getProperty(keyStoreFile))
.keyStorePass(properties.getProperty(keyStorePass))
.trustStoreFile(properties.getProperty(trustStoreFile))
.trustStorePass(properties.getProperty(trustStorePass))
.keyStoreType(properties.getProperty(keyStoreType))
.keyStoreProvider(properties.getProperty(keyStoreProvider))
.trustStoreType(properties.getProperty(trustStoreType))
.trustStoreProvider(properties.getProperty(trustStoreProvider))
.clientAuth(properties.getProperty(clientAuth))
.ciphers(properties.getProperty(ciphers))
.protocol(properties.getProperty(protocol)).build();
}
return null;
}
}