我在我的项目中使用Restlet与Jetty集成。我需要从响应中删除“服务器”标头,因为它公开了服务器信息。但是,由于我将Restlet与Jetty集成在一起(restlet,jetty,org.restlet.ext.jetty.jar),因此HttpConfiguration对象在Restlet中而不是在我的代码中实例化。因此,我无法将“ _sendServerVersion”设置为false,因此无法从响应中删除服务器标头。在这种情况下,如何从响应中删除服务器标头?
创建过滤器并通过过滤器删除标题的最佳方法:
public class ServerFilter extends Filter {
public ServerFilter(Context context) {
super(context);
}
@Override
protected void afterHandle(Request request, Response response) {
response.getHeaders().set("Server", null);
super.afterHandle(request, response);
}
}
然后像这样使用它:
ServerFilter serverFilter = new ServerFilter(getContext());
serverFilter.setNext(router);
return serverFilter;
请参阅:https://javadocs.restlet.talend.com/2.4/jee/api/index.html以获取文档