0

我想在 Jetty 中记录所有 HTTP 请求,该请求有据可查,但我找不到任何资源,如何屏蔽某些参数。

例如:

json/users/detail?id=dsgrw543

应记录为:

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

或类似的。

主要动机是我可以提供这些日志进行分析,而不必担心我们用户的隐私可能会受到损害。理想情况下是在线的,不使用批处理或其他脚本。

请注意,我使用其他身份验证机制(cookies/所有写入方法都是 POST/等)并且我无法更改现有 URL。

到目前为止,我唯一的想法是将其实现为 NCSARequestLog 之上的一个类:http: //download.eclipse.org/jetty/stable-7/apidocs/org/eclipse/jetty/server/NCSARequestLog.html

这样做的更好方法是什么?

4

1 回答 1

0

你可以像这样写一个简单的工具,在你记录的任何地方使用它

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

或者可以request.getRequestedURI()代替getServletPath

于 2013-03-08T08:47:15.807 回答