【发布时间】:2016-11-06 17:18:52
【问题描述】:
我用centos 7,spring boot(谁用tomcat嵌入式)
在我的 application.properties 中
security.require-ssl=true
server.port: 8443
我可以通过
访问我的网站www.xxxx.com
但是
xxxx.com
不工作
我也试过了
在我的 application.properties 中
server.port: 8443
在应用程序类中
@Bean
public 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);
}
};
tomcat.addAdditionalTomcatConnectors(createHttpConnector());
return tomcat;
}
private Connector createHttpConnector() {
Connector connector
= new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setSecure(false);
connector.setPort(8080);
connector.setRedirectPort(8443);
return connector;
}
在我看到的日志中
s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8443 (https) 8080 (http)
www.xxxxx.com 正在运行
xxxx.com 自动转换为
xxxx.com:8443
我不明白为什么要添加端口。
【问题讨论】:
-
该配置几乎没有用,因为您正在创建自己的容器和连接器。因此,在您的
application.properties中添加与服务器相关的任何内容都不再有效。 -
在文档中:建议使用 application.properties 来配置 HTTPS,因为 HTTP 连接器更容易以编程方式配置
-
这与您的问题和我的评论有关吗?您基本上忽略了 Spring Boot(当您创建自己的嵌入式容器时)并且仍然期望属性能够应用......这永远不会发生
-
发生了,这点......这只是一个事实
-
我仍然不明白你的意思以及它是如何相关的。您在评论中写的内容没有意义。
标签: tomcat ssl browser spring-boot centos