如何处理 tomcat 中的 // URI 前缀



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

提前致谢

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

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

"黑客攻击"雄猫让它接受垃圾请求是一个坏主意。 它将限制您升级平台和/或在不同网络环境中部署的选项。

最新更新