use of org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory in project cas by apereo.
the class CasEmbeddedContainerTomcatConfiguration method servletContainer.
@ConditionalOnClass(value = { Tomcat.class, Http2Protocol.class })
@Bean
public EmbeddedServletContainerFactory servletContainer() {
final TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
configureAjp(tomcat);
configureHttp(tomcat);
configureExtendedAccessLog(tomcat);
configureRewriteValve(tomcat);
return tomcat;
}
use of org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory in project fru-paqx-parent by dellemc-symphony.
the class ContextConfig method servletContainer.
@Bean
public /**
* This container is required in order to implement the redirect from http 8080 to https 18443 in spring boot.
* This means that http can continue to be used but will automatically redirect to https
* The responses from FRU will be https regardless of the protocol/port used by the cli.
*/
EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
@Override
protected /**
* This is the method where ssl is configured in the tomcat container.
* We want to override this in order to be able to take an encrypted-base64-encoded password from
* application.properties and to decode+decrypt it and provide it to the Ssl object before ssl configuration begins.
*/
void configureSsl(AbstractHttp11JsseProtocol<?> protocol, Ssl ssl) {
if (LOG.isDebugEnabled()) {
LOG.debug("ContextConfig: servletContainer: encoded password = " + ssl.getKeyStorePassword());
}
byte[] decodedBytes = Base64.getDecoder().decode(ssl.getKeyStorePassword());
ssl.setKeyStorePassword(new String(decodedBytes));
super.configureSsl(protocol, ssl);
}
};
//Setup the redirection
tomcat.addAdditionalTomcatConnectors(initiateHttpConnector());
//Setup the custom realm, which sets the custom redirect code.
//By default the redirect is 302. But if the request to be redirected is a post,
//then the post is converted to a get and therefore the post's body is removed in the redirect. (e.g. using CURL)
//We need to set the redirection with code 307 so that the origin method is used in the redirect
//e.g. get uses get on redirect and post uses post on redirect.
//This conforms to standard RFC 2616
tomcat.addContextCustomizers((TomcatContextCustomizer) context -> {
RealmBase base = new CombinedRealm();
base.setTransportGuaranteeRedirectStatus(307);
context.setRealm(base);
});
return tomcat;
}
use of org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory in project survey by markoniemi.
the class TomcatConfig method servletContainer.
@Bean
@DependsOn("contextPath")
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
factory.setPort(port);
factory.setContextPath(contextPath());
// https://stackoverflow.com/questions/43264890/after-upgrade-from-spring-boot-1-2-to-1-5-2-filenotfoundexception-during-tomcat
String[] tldSkipPatterns = { "jaxb-core.jar", "jaxb-api.jar", "xml-apis.jar", "xercesImpl.jar", "xml-apis.jar", "serializer.jar" };
factory.setTldSkipPatterns(Arrays.asList(tldSkipPatterns));
return factory;
}
use of org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory in project PublicCMS-preview by sanluan.
the class SprintBootApplication method servletContainer.
/**
* @return servlet container
*/
@Bean
public EmbeddedServletContainerFactory servletContainer() {
String server = System.getProperty("cms.server");
AbstractEmbeddedServletContainerFactory factory = null;
if ("jetty".equalsIgnoreCase(server)) {
factory = new JettyEmbeddedServletContainerFactory();
} else if ("undertow".equalsIgnoreCase(server)) {
factory = new UndertowEmbeddedServletContainerFactory();
} else {
factory = new TomcatEmbeddedServletContainerFactory();
}
factory.setPort(Integer.valueOf(System.getProperty("cms.port", "8080")));
factory.setContextPath(System.getProperty("cms.contextPath", ""));
factory.setDisplayName("PublicCMS");
factory.setSessionTimeout(20, TimeUnit.MINUTES);
return factory;
}
use of org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory in project danyuan-application by 514840279.
the class App method servletContainer.
// @Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
Aggregations