6 changed files with 182 additions and 62 deletions
@ -0,0 +1,68 @@
@@ -0,0 +1,68 @@
|
||||
/* |
||||
* Copyright 2012-2021 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 |
||||
* |
||||
* https://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.boot.docs.context.embedded; |
||||
|
||||
import java.io.IOException; |
||||
import java.net.URL; |
||||
|
||||
import org.apache.catalina.connector.Connector; |
||||
import org.apache.coyote.http11.Http11NioProtocol; |
||||
|
||||
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; |
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
import org.springframework.util.ResourceUtils; |
||||
|
||||
/** |
||||
* Example configuration for configuring Tomcat with an additional {@link Connector}. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@Configuration(proxyBeanMethods = false) |
||||
public class TomcatMultipleConnectorsExample { |
||||
|
||||
// tag::configuration[]
|
||||
@Bean |
||||
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> sslConnectorCustomizer() { |
||||
return (tomcat) -> tomcat.addAdditionalTomcatConnectors(createSslConnector()); |
||||
} |
||||
|
||||
private Connector createSslConnector() { |
||||
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); |
||||
Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); |
||||
try { |
||||
URL keystore = ResourceUtils.getURL("keystore"); |
||||
URL truststore = ResourceUtils.getURL("truststore"); |
||||
connector.setScheme("https"); |
||||
connector.setSecure(true); |
||||
connector.setPort(8443); |
||||
protocol.setSSLEnabled(true); |
||||
protocol.setKeystoreFile(keystore.toString()); |
||||
protocol.setKeystorePass("changeit"); |
||||
protocol.setTruststoreFile(truststore.toString()); |
||||
protocol.setTruststorePass("changeit"); |
||||
protocol.setKeyAlias("apitester"); |
||||
return connector; |
||||
} |
||||
catch (IOException ex) { |
||||
throw new IllegalStateException("Fail to create ssl connector", ex); |
||||
} |
||||
} |
||||
// end::configuration[]
|
||||
|
||||
} |
||||
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
/* |
||||
* Copyright 2012-2021 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 |
||||
* |
||||
* https://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.boot.docs.context.embedded; |
||||
|
||||
import java.time.Duration; |
||||
|
||||
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; |
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer; |
||||
import org.springframework.stereotype.Component; |
||||
|
||||
/** |
||||
* Example of a {@link WebServerFactoryCustomizer} that uses a more narrowed server type. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
// tag::configuration[]
|
||||
@Component |
||||
public class TomcatServerCustomizerExample implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> { |
||||
|
||||
@Override |
||||
public void customize(TomcatServletWebServerFactory server) { |
||||
server.addConnectorCustomizers( |
||||
(tomcatConnector) -> tomcatConnector.setAsyncTimeout(Duration.ofSeconds(20).toMillis())); |
||||
} |
||||
|
||||
} |
||||
// end::configuration[]
|
||||
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
/* |
||||
* Copyright 2012-2021 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 |
||||
* |
||||
* https://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.boot.docs.context.embedded; |
||||
|
||||
import io.undertow.Undertow.Builder; |
||||
|
||||
import org.springframework.boot.web.embedded.undertow.UndertowBuilderCustomizer; |
||||
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; |
||||
import org.springframework.boot.web.server.WebServerFactoryCustomizer; |
||||
import org.springframework.context.annotation.Bean; |
||||
import org.springframework.context.annotation.Configuration; |
||||
|
||||
/** |
||||
* Example configuration for configuring Undertow with an additional listener. |
||||
* |
||||
* @author Stephane Nicoll |
||||
*/ |
||||
@Configuration(proxyBeanMethods = false) |
||||
public class UndertowMultipleListenersExample { |
||||
|
||||
// tag::configuration[]
|
||||
@Bean |
||||
public WebServerFactoryCustomizer<UndertowServletWebServerFactory> undertowListenerCustomizer() { |
||||
return (factory) -> { |
||||
factory.addBuilderCustomizers(new UndertowBuilderCustomizer() { |
||||
|
||||
@Override |
||||
public void customize(Builder builder) { |
||||
builder.addHttpListener(8080, "0.0.0.0"); |
||||
} |
||||
|
||||
}); |
||||
}; |
||||
} |
||||
// end::configuration[]
|
||||
|
||||
} |
||||
Loading…
Reference in new issue