我在系统上进行了测试。我复制了代码,转储了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);
}
}