0

我正在运行一个 tomcat 服务器,它的过滤器(和一个 servlet)映射到 /xxx/* 我有客户端在 HTTP 标头处发送 //xxx/* 作为 uri。结果,没有调用 servlet 和过滤器。我已经尝试在 /* 处放置一个过滤器来捕获请求,用 requestWrapper 包装它并覆盖 getURI() 和 getServletPath() 方法(它们只是将带有单个 / 的 URI 返回给调用者)这似乎没有工作,所以我假设一旦tomcat收到一个请求,它决定在将它发送到第一个过滤器之前,应该根据这个uri评估哪些servlet/过滤器。有没有办法解决这个问题?我可以让tomcat在每个过滤器之后重新评估吗?还有其他方法吗?

提前致谢

4

1 回答 1

0

如果请求标头中的 URL 不符合规范,则 Tomcat 通过删除它们来做正确的事情。

如果这是问题所在,您需要修复客户端,以便它将正确的绝对 URL 放入 HTTP 请求中。

“破解” Tomcat 以使其接受垃圾请求是一个坏主意。它将限制您升级平台和/或在不同网络环境中部署的选项。

于 2012-11-27T23:37:00.223 回答