如何解决如何将jsession id添加到apache http访问日志中
|| 我必须为我的Web应用程序创建访问日志。我们在jboss前面使用了appache http服务器。我正在为此使用apache访问日志指令,但是问题是在访问日志中没有获取会话ID的指令。我需要sessionid在访问日志中获取statistics report.pls任何有解决方案的人都可以帮助我。解决方法
如果您的Web应用程序始终使用Cookie来管理会话,则可以更改LogFormat并添加用于记录特定Cookie的参数:
LogFormat ... \\\"%{JSESSIONID}C\\\" ... combined
这对第一个请求不起作用,因为通常没有cookie发送到服务器。
看到:
http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats:
%{Foobar} C
发送到服务器的请求中Cookie Foobar的内容。仅完全支持版本0 Cookie。
如果您需要记录每个jsessionid,以使编码到url字符串中的jsessionid均匀,则可以在Web应用程序服务器(例如tomcat)上设置Header,如下所示:
response.setHeader(\"X-JSESSIONID\",request.getSession().getId());
以Apache日志格式,您可以使用以下命令记录此RepsonseHeader:
%{Foobar} o
Foobar的内容:答复中的标题行。
所以结果是这样的:
LogFormat ... \\\"%{X-JSESSIONID}o\\\" ... combined
但是请注意安全性:您不应记录jsessionid,因为有权访问该日志文件的每个人都可以劫持每个用户会话。当您在雄猫中设置标题行时,您可能应该加密sessionid。
String sessionId = request.getSession().getId();
String crypt = yourcryptalgo(sessionId);
response.setHeader(\"X-JSESSIONID\",crypt);
, 将%{JSESSIONID} C包含到LogFormat指令中
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。