在我的项目使用 1.4.0.M3 版本的 Spring Boot 前几周,它使用 tomcat-embedded-core-8.0.33。 在这里,我能够使用以下代码创建多连接器:
@Bean
EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector() {
Connector connector = new Connector(Http11Nio2Protocol.class.getCanonicalName());
connector.setPort(expiredCertPort);
connector.setScheme("https");
connector.setSecure(true);
Http11Nio2Protocol protocolHandler = (Http11Nio2Protocol) connector.getProtocolHandler();
protocolHandler.setSSLEnabled(true);
protocolHandler.getEndpoint().setTrustManagerClassName(TimelessTrustManager.class.getCanonicalName());
return connector;
}
问题是从版本 1.4.0.RELEASE 开始,Spring Boot 使用 8.5.* Tomcat,其中 .getEndpoint() 方法被声明为 protected 。
如何以编程方式为特定连接器或协议(protocol)处理程序安装 TrustManager?
最佳答案
.setTrustManagerClassName(字符串)
关于java - 以编程方式为 Tomcat 连接器设置 TrustManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39172746/