2013-08-20 25 views
0

我有GET請求發送到weblogic 12c服務器,它攜帶用戶信息,並在服務器端抓取這些 信息來處理請求。Weblogic 12c服務器忽略URL中的'#'符號

而且GET請求看起來象下面這樣:

網址:/prem/JSP/xml/prems.jsp用戶名= rjanga &密碼= 1234roh#&地址= 3450Rivast &城市= FT + COLLINS &狀態= CO & zip = 80526。

因爲我有一個'#'符號在我的密碼weblogic服務器忽略它和任何後 它。

它只能看到網址爲 /prem/JSP/xml/prems.jsp?username=rjanga &密碼= 1234roh(忽略符號「#」和之後的所有字符串,如地址,city..etc)

經過一番研究,並通過this link我試着解決方案中提到它。

但它沒有幫助,任何幫助表示讚賞。

回答

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字符串。