Supprimer L'en-tête du serveur HTTP dans Jetty 9

Voici comment vous masquez la version du serveur dans Jetty 8:

Server server = new Server(port);
server.setSendServerVersion(false);
<!-Comment faites-vous à la jetée 9? Alors maintenant ça devrait ressembler à ça?

HttpConfiguration config = new HttpConfiguration();
config.setSendServerVersion(false);
//TODO: Associate config with server???
Server server = new Server(port);
17
demandé sur Jacob 2013-03-27 10:14:31

7 réponses

dans Jetty 9, Vous devez le configurer sur HttpConfiguration:

HttpConfiguration httpConfig = new HttpConfiguration();
httpConfig.setSendServerVersion( false );
HttpConnectionFactory httpFactory = new HttpConnectionFactory( httpConfig );
ServerConnector httpConnector = new ServerConnector( server,httpFactory );
server.setConnectors( new Connector[] { httpConnector } );
26
répondu djschny 2016-06-12 19:02:53

Si établi un code qui semble fonctionner. Je ne sais pas si c'est juste, mais au moins ça marche (:

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
répondu Jacob 2013-03-28 05:48:31

si vous utilisez jetty9 comme serveur autonome, vous pouvez désactiver la signature du serveur en définissant jetty.httpConfig.sendServerVersion=false dans le fichier start.ini.

7
répondu Tarator 2015-12-05 12:40:34

il y a maintenant un objet HttpConfiguration avec ce paramètre.

org.Eclipse.jetée.serveur.HttpConfiguration

regardez la jetée.xml pour la section sur la section de configuration http montrant comment configurer l'objet, puis le Jetty-http.fichier xml qui montre comment cette configuration est utilisée. Rappelez - vous que les fichiers Jetty xml sont vraiment juste une peau fine sur java et de travailler essentiellement la de même.

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
répondu jesse mcconnell 2013-03-27 12:34:40

Certains logiciels d'analyse de sécurité signaleront comme problème l'envoi de la version du serveur dans l'en-tête de réponse.

OP recherchait une solution pour embarqué, mais si votre déploiement de Jetty utilise le serveur.fichier ini, vous pouvez simplement définir jetty.envoyer.serveur.version=false

1
répondu EricJ 2015-11-05 01:56:16

variante Lambda de la solution de Jacob (qui a fonctionné pour moi):

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));
1
répondu Krzysztof Tomaszewski 2017-01-26 00:07:50

jetty9.2, changez cette configuration en falsestart.ini

# should jetty send the server version header?
jetty.send.server.version=true
0
répondu 宏杰李 2017-11-03 07:24:35