2015-02-10 69 views
0

我使用弹簧安全和Spring MVC 我想get方法[email protected]发送tomcat的双解码URL

1.当我在浏览器中键入本地主机:8080/myServlerturl /登录? 。user=1%[email protected] 我得到的/登录 request.getParameterMap()获取( “用户”)是1 + 1

2.当我打字在浏览器本地主机:8080 /我的登入/登入 request.getParameterMap()。get(“user”)is 1 1

我从此推断出,tomcat做双重encdoing的含义 浏览器将1 + 1改为1%2B1(浏览器始终解码url)tomcat将其更改为1 1表示双重编码。

我在第一过滤器见我有参数作为1个1 INSEAD把它看作1 + 1

(URL编码)(被Tomcat 2 X解码)=解码X 1太多

回答

-1

我有问题 在我wireshark检查后,我在系统中的另一个地方有问题,我解决了我的问题。

1

无论如何,网址中的某些字符必须是percent encoded。这就是HTTP的工作原理。

你的第2个情况没有多大意义。如果生成了这样的URL(没有百分号编码+符号),则它生成不正确,必须修复。