mirror of
https://github.com/spring-projects/spring-boot.git
synced 2024-09-03 04:26:12 +08:00
Merge branch '1.2.x'
This commit is contained in:
commit
248fcbec5d
@ -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 {
|
||||
|
@ -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
|
Binary file not shown.
Binary file not shown.
@ -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());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user