2013-03-08 54 views
0

我想在Jetty中記錄所有的HTTP請求,這是有據可查的,但我不能找到任何資源如何掩蓋一些參數。在碼頭請求日誌中掩蓋URL的一部分

例如爲:

json/users/detail?id=dsgrw543

應該被記錄爲:

json/users/detail?id=********

或相似。

主要動機是我可以給這些日誌進行分析,而不用擔心我們的用戶的隱私可能會受到影響。理想的在線,不使用批處理或其他腳本。

請注意,我使用其他身份驗證機制(cookie /所有寫入方法都是POST/etc),並且我無法更改現有的URL。

到目前爲止,我唯一的想法就是實現它作爲NCSARequestLog頂部的類: http://download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/server/NCSARequestLog.html

什麼是這樣做的更好的方法?

+0

你想完全消除查詢字符串?或者只是掩蓋價值觀? – Nishant 2013-03-08 08:37:11

+0

只是掩蓋它的價值或消除該論點。我想保留查詢字符串。即使只是扔掉一切後?對我來說很好。 – Jakozaur 2013-03-08 08:40:46

回答

0

你可以寫一個簡單的UTIL這樣,用它隨時隨地可以登錄

Enumeration<String> s = request.getParameterNames(); 
    String q = ""; 
    while(s.hasMoreElements()){ 
     q += s.nextElement() + "=***&"; 
    } 
    String url = request.getServletPath()+(q.length()>0?"?"+q:""); 

或可能request.getRequestedURI()代替getServletPath