這是你如何藏在碼頭8的服務器版本中刪除HTTP Server頭?那麼現在應該看起來像這樣?在碼頭9
HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
這是你如何藏在碼頭8的服務器版本中刪除HTTP Server頭?那麼現在應該看起來像這樣?在碼頭9
HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
如果制定了一些代碼,似乎工作。不知道其權利,但至少它的工作原理(:
Server server = new Server(port);
for(Connector y : server.getConnectors()) {
for(ConnectionFactory x : y.getConnectionFactories()) {
if(x instanceof HttpConnectionFactory) {
((HttpConnectionFactory)x).getHttpConfiguration().setSendServerVersion(false);
}
}
}
現在有一個HttpConfiguration對象,它的設置。
org.eclipse.jetty.server.HttpConfiguration
查找到的jetty.xml有關HTTP配置部分的部分示出了如何設置對象,然後碼頭-http.xml文件,其顯示瞭如何該配置用來。請記住,jetty xml文件實際上只是一個超薄的Java皮膚,並且工作原理基本相同。
在碼頭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 });
您應該添加最後一步:'server.setConnectors(new Connector [] {httpConnector});'。 – 2014-07-26 13:50:53
爲新連接器設置端口的重要位是:'httpConnector.setPort(port);'。由於默認連接器正在被替換,因此不會使用傳遞給「服務器」構造函數的端口。 – Ben 2016-10-06 15:34:11
一些安全分析軟件將標誌向服務器發送版本響應報頭作爲一個問題。
OP一直在尋找解決方案,嵌入式,但如果你的碼頭部署使用server.ini文件,你可以簡單地設置jetty.send.server.version =假
如果您使用jetty9作爲獨立服務器,則可以通過在文件start.ini
中設置jetty.httpConfig.sendServerVersion=false
來禁用服務器簽名。
雅各布的解決方案(這爲我工作)的λ-風格的變體:
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));
jetty9.2
,在start.ini
# should jetty send the server version header?
jetty.send.server.version=true
我知道禁止向服務器發送版本更改此配置,以
false
不理想的,但我有一個特定的場景,現在我無法避免它。 – Jacob 2013-03-27 23:26:55爲什麼_sending服務器版本不理想_?我的意思是沒有客戶應該使用它,它可能有安全隱患。在我看來,它應該被禁用默認或我錯過了什麼? – 2015-07-28 14:32:55
服務器標題是絕對使用的,它可能會影響您的搜索排名,也可用於創建技術/瀏覽器流行度圖表,這些圖表經常被某些類型的人員用於制定技術決策。 – Jacob 2015-07-29 09:22:03