我要添加一个新答案,因为它是完全不同的。
我在系统上进行了测试。我复制了代码,转储了cookie测试,并编写了一个简单的Servlet为我转储。
而且效果很好,除了一个警告。
我不知道您的应用程序如何使用它。但是您的
ServletRequestWrapper工具实现了
getHeaderNames,
getHeader但是,它并没有实现
getHeaders。我曾经
getHeaders尝试转储请求时遇到了这个问题,当然,缺少授权。
因此,您可能需要仔细查看代码,看看是否确实没有使用
getHeaders。如果是这样,它将“正常工作”,但完全跳过您已完成的工作,从而错过您的Authorization标头。
这是我的实现,对我有用。
@Override public Enumeration getHeaders(String name) { Enumeration e = super.getHeaders(name); if (e != null && e.hasMoreElements()) { return e; } else { List l = new ArrayList(); if (headerMap.get(name) != null) { l.add(headerMap.get(name)); } return Collections.enumeration(l); } }


