Weblogic 12c服务器忽略了#'#' URL中的符号

时间:2013-08-20 19:49:11

标签: weblogic weblogic12c

我有GET请求被发送到weblogic 12c服务器,它携带用户信息,在服务器端我抓住这些 处理请求的信息。

GET请求如下所示:

URL:/prem/JSP/xml/prems.jsp用户名= rjanga&安培;密码= 1234roh#&安培;地址= 3450Rivast&安培;城市= FT + COLLINS&安培;状态= CO&安培;邮编= 80526

因为我的密码中有一个'#'符号weblogic服务器忽略了它后面的任何内容  它

它只会将网址视为 /prem/JSP/xml/prems.jsp?username=rjanga&password=1234roh(忽略符号'#'及其后面的所有字符串,如address,city..etc)

经过一些研究并经历this link后,我尝试了解决方案。

但它没有帮助,感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

您将不得不在密码字段上进行编码。将密码放在URL中是非常不安全的。你不应该这样做。也就是说,这里有一些信息:

来自http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html

URL类本身不会根据RFC2396中定义的转义机制对任何URL组件进行编码或解码。调用者负责编码任何字段,这些字段需要在调用URL之前进行转义,并且还要解码从URL返回的任何转义字段。此外,由于URL不知道URL转义,因此它无法识别相同URL的编码或解码形式之间的等效性。例如,两个网址:

http://foo.com/hello world/ 

http://foo.com/hello%20world

将被视为彼此不相等。

请注意,URI类在某些情况下会执行其组件字段的转义。管理URL编码和解码的推荐方法是使用URI,并使用toURI()和URI.toURL()在这两个类之间进行转换。

由您来编码和解码这些URL字符串。