我正在运行一个tomcat服务器,它具有映射到/ xxx / *的过滤器(和一个servlet) 我有客户端在HTTP头部发送// xxx / *作为uri。因此,servlet和过滤器不会被调用。 我已经尝试在/ *上添加一个捕获请求的过滤器,用requestWrapper包装它并覆盖getURI()和getServletPath()方法(它们只返回带有单个/的URI到任何调用) 这似乎不起作用,所以我假设一旦tomcat收到一个请求,它决定哪个servlet /过滤器应该在这个uri之前进行评估,甚至将它发送到第一个过滤器。 有办法解决这个问题吗?我可以在每个过滤器之后重新评估tomcat吗?还有另一种方式吗?
提前致谢
答案 0 :(得分:0)
如果请求标头中的URL不符合规范,Tomcat会通过删除它们来做正确的事情。
如果这是问题,您需要修复客户端,以便将正确的绝对URL放入HTTP请求中。
“黑客攻击”Tomcat让它接受垃圾请求是一个坏主意。它将限制您升级平台和/或在不同网络环境中部署的选项。