web-dev-qa-db-ja.com

Jetty9のHTTPサーバーヘッダーを削除します

Jetty8でサーバーバージョンを非表示にする方法は次のとおりです。

Server server = new Server(port);
server.setSendServerVersion(false);

Jetty 9ではどのようにそれを行いますか?だから今それはこのように見えるはずですか?

HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
18
Jacob

うまくいくように見えるいくつかのコードを解決した場合。その権利があるかどうかはわかりませんが、少なくとも機能します(:

Server server = new Server(port);
for(Connector y : server.getConnectors()) {
    for(ConnectionFactory x  : y.getConnectionFactories()) {
        if(x instanceof HttpConnectionFactory) {
            ((HttpConnectionFactory)x).getHttpConfiguration().setSendServerVersion(false);
        }
    }
}
23
Jacob

Jetty 9では、HttpConfigurationで構成する必要があります。

HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setSendServerVersion( false );
HttpConnectionFactory httpFactory = new HttpConnectionFactory( httpConfig );
ServerConnector httpConnector = new ServerConnector( server,httpFactory );
server.setConnectors( new Connector[] { httpConnector } );
30
djschny

Jetty9をスタンドアロンサーバーとして使用する場合は、ファイルjetty.httpConfig.sendServerVersion=falsestart.iniを設定することにより、サーバーの署名を無効にできます。

10
Tarator

これで、その設定が設定されたHttpConfigurationオブジェクトができました。

org.Eclipse.jetty.server.HttpConfiguration

オブジェクトのセットアップ方法を示すhttp構成セクションのセクションについてはjetty.xmlを参照し、次にその構成の使用方法を示すjetty-http.xmlファイルを参照してください。 jettyxmlファイルは実際にはJavaの薄いスキンであり、基本的に同じように機能することを忘れないでください。

http://git.Eclipse.org/c/jetty/org.Eclipse.jetty.project.git/tree/jetty-server/src/main/config/etc/jetty.xml

http://git.Eclipse.org/c/jetty/org.Eclipse.jetty.project.git/tree/jetty-server/src/main/config/etc/jetty-http.xml

2
jesse mcconnell

Jacobのソリューションのラムダスタイルの変形(私のために働いた):

final Server server = new Server(port);
Stream.of(server.getConnectors()).flatMap(connector -> connector.getConnectionFactories().stream())
            .filter(connFactory -> connFactory instanceof HttpConnectionFactory)
            .forEach(httpConnFactory -> ((HttpConnectionFactory)httpConnFactory).getHttpConfiguration().setSendServerVersion(false));

一部のセキュリティ分析ソフトウェアは、応答ヘッダーでサーバーバージョンの送信に問題としてフラグを立てます。

OPは組み込みのソリューションを探していましたが、Jettyデプロイメントでserver.iniファイルを使用する場合は、jetty.send.server.version = falseを設定するだけです。

1
EricJ

jetty9.2で、この設定をstart.inifalseに変更します。

# should jetty send the server version header?
jetty.send.server.version=true
0
宏杰李