2017-03-31 99 views
0

我们正在面对Spring应用程序的一些问题。我们使用嵌入式的tomcat。当我们打开几个具有特殊字符的关键字时,它没有到达我们的应用程序。该应用程序托管在谷歌云。我们无法在本地重现这一点,但是当他在其他环境中访问相同的网址时,我们可以看到空白页。我们通过在过滤器和我们的控制器中添加大量日志来进行检查,请求并不是自己来到我们的应用程序。有人可以帮我解决这个问题。嵌入式Tomcat在春季启动时阻塞了一些关键字

Example: www.test.com/s/5%2F8%20spark%20plug 
+0

'%2F'看起来可能是一个问题,特别是如果有中介(路由器,代理等)解释URL。 – chrylis

+0

感谢您的回应!有没有一种方法可以让tomcat允许这些关键字?谢谢 !! – user2334926

+0

这不是关键字,它是奇怪的URL编码,它几乎可以肯定是Tomcat的上游 - 例如GCE路由器。 – chrylis

回答

0

为@chrylis提到的,没有什么,你可以在你的应用程序,允许这种类型的网址来工作,因为这个问题是你的应用程序之前,你的应用程序永远不会要求这样做。

我建议您不要花太多时间调查Google云平台为什么会扼杀网址,而是要仔细审视您的应用程序,并问问自己是否真的需要这些“非标准”网址。

例如,如果“5%2F8%20spark%20plug”是最终用户提供的东西(或由最终用户提供的东西的URL编码版本),那么也许最好是使用一个id(一个Long或一个UUID)来代替 - 这是一种“规范化”,并且不会产生URL分析问题。