【问题标题】:How to remove "Server" header from the restlet/jetty response?如何从 restlet/jetty 响应中删除“服务器”标头?
【发布时间】:2019-07-18 13:29:52
【问题描述】:

我在我的项目中使用 Restlet 与 Jetty 的集成。我需要从响应中删除“服务器”标头,因为它会泄露服务器信息。但是由于我使用 Restlet 与 Jetty 的集成(restlet、jetty、org.restlet.ext.jetty.jar),所以 HttpConfiguration 对象在 Restlet 内部而不是在我的代码中实例化。因此,我无法将“_sendServerVersion”设置为 false,因此无法从响应中删除服务器标头。在这种情况下如何从响应中删除服务器标头?

【问题讨论】:

    标签: restlet jetty-9


    【解决方案1】:

    最好的方法是创建一个Filter并通过Filter去掉header:

    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

    【讨论】:

      猜你喜欢
      • 2017-07-11
      • 2014-11-06
      • 2021-06-22
      • 2016-05-09
      • 1970-01-01
      • 2014-06-19
      • 2010-11-13
      • 1970-01-01
      • 2021-06-13
      相关资源
      最近更新 更多