Merge branch '1.2.x'

This commit is contained in:
Andy Wilkinson 2015-10-30 09:06:58 +00:00
commit 248fcbec5d
5 changed files with 15 additions and 45 deletions

View File

@ -16,26 +16,20 @@
package sample.tomcat.multiconnector;
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 {

View File

@ -0,0 +1,4 @@
server.port = 8443
server.ssl.key-store = classpath:sample.jks
server.ssl.key-store-password = secret
server.ssl.key-password = password

View File

@ -45,9 +45,10 @@ import org.springframework.web.client.RestTemplate;
import static org.junit.Assert.assertEquals;
/**
* Basic integration tests for 2 connector demo application.
* Basic integration tests for {@link SampleTomcatTwoConnectorsApplication}.
*
* @author Brock Mills
* @author Andy Wilkinson
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(SampleTomcatTwoConnectorsApplication.class)
@ -107,14 +108,14 @@ public class SampleTomcatTwoConnectorsApplicationTests {
});
template.setRequestFactory(factory);
ResponseEntity<String> entity = template
.getForEntity("http://localhost:" + this.port + "/hello", String.class);
ResponseEntity<String> entity = template.getForEntity(
"http://localhost:" + this.context.getBean("port") + "/hello",
String.class);
assertEquals(HttpStatus.OK, entity.getStatusCode());
assertEquals("hello", entity.getBody());
ResponseEntity<String> httpsEntity = template.getForEntity(
"https://localhost:" + this.context.getBean("port") + "/hello",
String.class);
ResponseEntity<String> httpsEntity = template
.getForEntity("https://localhost:" + this.port + "/hello", String.class);
assertEquals(HttpStatus.OK, httpsEntity.getStatusCode());
assertEquals("hello", httpsEntity.getBody());