EmbeddedTomcatConfiguration.java
package ...
import java.util.ArrayList;
import java.util.List;
import org.apache.catalina.connector.Connector;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class EmbeddedTomcatConfiguration {
@Value("${server.additionalPorts}")
private String additionalPorts;
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
Connector[] additionalConnectors = this.additionalConnector();
if (additionalConnectors != null && additionalConnectors.length > 0) {
tomcat.addAdditionalTomcatConnectors(additionalConnectors);
}
return tomcat;
}
private Connector[] additionalConnector() {
if (StringUtils.isBlank(this.additionalPorts)) {
return null;
}
String[] ports = this.additionalPorts.split(",");
List<Connector> result = new ArrayList<>();
for (String port : ports) {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
connector.setPort(Integer.valueOf(port));
result.add(connector);
}
return result.toArray(new Connector[] {});
}
}
application.yml
server:
port: ${appPort:8800}
additionalPorts: 8880,8881
Application.java
@SpringBootApplication
@ComponentScan(...)
@Import(EmbeddedTomcatConfiguration.class)
public Application {
public static void main(String[] args) {
SpringApplication.run(Application .class, args);
}
}
INFO TomcatEmbeddedServletContainer:185 - Tomcat started on port(s): 8800 (http) 8880 (http) 8881 (http)
:および特定のポートからのアクセスjavamelodyを制限するための私の提案は、javamelodyフィルタを拡張し、それ以外のログから404
を送り返す特定のポートから来る場合だけ、要求をチェーンになります
このアプローチは、これらのポート上の他のエンドポイントを公開します。 これを解決し、javamelodyフィルタ(/監視)を特定のポートに制限するには、これらのフィルタの順序が重要であることを覚えておいて、許容ポートから要求されているパス(サーブレットとフィルタパス)を検証するフィルタを作成する必要があります。この答えと私はこの質問に答えたとき、私はあなたがMvcEndpointを通じてReportServletを使用することができますhttp://tech.asimio.net/2016/12/15/Configuring-Tomcat-to-Listen-on-Multiple-ports-using-Spring-Boot.html
あなたが8080のプロジェクト、あなたは、これは私の問題を解決しないであろう8081 – StackFlowed
にそれを変更する場所を見つけるかどうかを確認、検索、このような何か。私はまだ私のアプリケーションがポート8080でビジネスREST APIを公開し、8081で管理APIを、そして8081でjavamelodyを公開したい。 –