gpt4 book ai didi

HTTPS : how to change default http port 8080 to another value 上的 Java Spring Boot

转载 作者:行者123 更新时间:2023-11-28 22:46:48 24 4
gpt4 key购买 nike

嗨,Java 和 Springboot 大师们,

这是关于我使用 springboot 在 Java 中创建的一个项目。
我能够在 spring boot 中成功创建和设置 https 项目。然后设置 HTTPS 端口,我只需通过命令行设置,而不是通过终端中的此命令在 application.properties 中设置:

$ java -Dserver.port=6001 -jar myapp-0.0.1.jar

我这样做是为了轻松创建将在其他端口运行的其他实例,比如 6002、6003 等等...

但问题是,tomcat 设置了这个默认的 HTTP 端口:

2019-08-16 02:42:36.768  INFO 6 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 6001 (https) 8080 (http)

我想摆脱它或者将它分配给另一个端口,例如6081.
我读过这个article ,并以编程方式进行设置。
但我想避免这种情况。
我只是希望它是我可以在命令行中添加为参数的东西,例如 -Dserver.port=6001。为了尽可能避免使我的项目进一步复杂化。
我试过这样做:

$ java -Dserver.port=6001 -Dserver.http.port=6081 -jar myapp-0.0.1.jar


... 但它不起作用。

非常感谢您的想法和意见!

最佳答案

您是否尝试过在 application.properties 中设置 server.port=-1。参见 Spring Boot doc .

[更新]

您可以将 HTTP 重定向到 HTTPS。

为此,您需要另一个连接器。 SpringBoot 不允许使用 application.properties 配置多个连接器。所以我们可以通过编程方式编写一个连接器。 Tomcat 的连接器示例:

@Configuration
public class MyTomcatConnector {

@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(initiateHttpConnector());
return tomcat;
}
private Connector initiateHttpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(8080);
connector.setSecure(false);
connector.setRedirectPort(6001);
return connector;
}
}

关于HTTPS : how to change default http port 8080 to another value 上的 Java Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57518669/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com