仅从Jetty的响应标头中删除版本号

Vit*_*liy 4 jetty embedded-jetty

此答案解释了如何使用HttpConfiguration.setSendServerVersion(false)完全删除服务器版本标头.

有没有办法保留标题,只删除版本

我正在使用Jetty 9.

Z4-*_*Z4- 6

有多种方法可以实现这一目标.也许最简单的(但不是最干净的)是让Jetty发送默认服务器头,但是在启动服务器后立即覆盖默认版本字符串:

private Server startServer() {
    Server server = new Server();

    // ... configure connectors, whatever you like

    server.start();

    // and do this the important part: *after* server.start():
    org.eclipse.jetty.http.HttpGenerator.setJettyVersion("Jetty");

    return server;
}
Run Code Online (Sandbox Code Playgroud)

这种方式jetty发送Server: Jetty头,没有版本的每个基于http的连接器(包括https).这是有效的,因为Jetty在静态数组中预先在服务器启动时构建这些类型的头.