@ -1,5 +1,5 @@
/ *
* Copyright 2012 - 201 4 the original author or authors .
* Copyright 2012 - 201 5 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 .
@ -16,26 +16,20 @@
package sample.tomcat ;
import java.io.File ;
import java.io.FileOutputStream ;
import java.io.IOException ;
import org.apache.catalina.connector.Connector ;
import org.apache.coyote.http11.Http11NioProtocol ;
import org.springframework.boot.SpringApplication ;
import org.springframework.boot.autoconfigure.SpringBootApplication ;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory ;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory ;
import org.springframework.context.annotation.Bean ;
import org.springframework.core.io.ClassPathResource ;
import org.springframework.util.FileCopyUtils ;
import org.springframework.util.SocketUtils ;
/ * *
* Sample Application to show Tomcat running 2 connectors
* Sample Application to show Tomcat running two connectors
*
* @author Brock Mills
* @author Andy Wilkinson
* /
@SpringBootApplication
public class SampleTomcatTwoConnectorsApplication {
@ -54,37 +48,8 @@ public class SampleTomcatTwoConnectorsApplication {
private Connector createSslConnector ( ) {
Connector connector = new Connector ( "org.apache.coyote.http11.Http11NioProtocol" ) ;
Http11NioProtocol protocol = ( Http11NioProtocol ) connector . getProtocolHandler ( ) ;
try {
File keystore = getKeyStoreFile ( ) ;
File truststore = keystore ;
connector . setScheme ( "https" ) ;
connector . setSecure ( true ) ;
connector . setPort ( port ( ) ) ;
protocol . setSSLEnabled ( true ) ;
protocol . setKeystoreFile ( keystore . getAbsolutePath ( ) ) ;
protocol . setKeystorePass ( "changeit" ) ;
protocol . setTruststoreFile ( truststore . getAbsolutePath ( ) ) ;
protocol . setTruststorePass ( "changeit" ) ;
protocol . setKeyAlias ( "apitester" ) ;
return connector ;
}
catch ( IOException ex ) {
throw new IllegalStateException ( "cant access keystore: [" + "keystore"
+ "] or truststore: [" + "keystore" + "]" , ex ) ;
}
}
private File getKeyStoreFile ( ) throws IOException {
ClassPathResource resource = new ClassPathResource ( "keystore" ) ;
try {
return resource . getFile ( ) ;
}
catch ( Exception ex ) {
File temp = File . createTempFile ( "keystore" , ".tmp" ) ;
FileCopyUtils . copy ( resource . getInputStream ( ) , new FileOutputStream ( temp ) ) ;
return temp ;
}
connector . setPort ( port ( ) ) ;
return connector ;
}
public static void main ( String [ ] args ) throws Exception {