springboot启动类的映射代码
// http 请求端口,线上配置
@Value("${server.port-http}")
private int serverPortHttp;
// 服务器运行端口,等同于 HTTPS 请求端口
@Value("${server.port}")
private int serverPortHttps;
/**
* http重定向到https 自定义tomcat
*/
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat;
tomcat = new TomcatServletWebServerFactory() {
@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;
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector(Http11NioProtocol.class.getName());
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(serverPortHttp);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(serverPortHttps);
return connector;
}
在application.yml配置文件配置https端口和http端口
ssl证书放在与配置文件同级目录就可以了