我必须为我的Web应用程序创建访问日志.我们正在jboss.i前面使用appache http服务器使用apache访问日志指令,但问题是没有指令在访问log.i需要sessionid获取sessionid在访问日志中的统计报告.pls任何有解决方案的人帮助我.
Jan*_*ing 12
如果您的Web应用程序始终使用Cookie来管理会话,则可以更改LogFormat并添加用于记录特定cookie的参数:
LogFormat ... \"%{JSESSIONID}C\" ... combined
Run Code Online (Sandbox Code Playgroud)
这不适用于第一个请求,因为通常不会向服务器发送cookie.请参阅: http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats:
%{Foobar的}℃
Cookie Foobar的内容在请求中发送到服务器.仅完全支持版本0 cookie.
如果你需要记录每个jsessionid,那么将编码到url字符串中的那些evene,你可以在你的web应用服务器上设置一个Header(如tomcat),如下所示:
response.setHeader("X-JSESSIONID", request.getSession().getId());
Run Code Online (Sandbox Code Playgroud)
在Apache日志格式中,您可以使用此日志记录此RepsonseHeader
%{Foobar的}ö
Foobar的内容:回复中的标题行.
所以它导致这样的事情:
LogFormat ... \"%{X-JSESSIONID}o\" ... combined
Run Code Online (Sandbox Code Playgroud)
但要注意安全性:您不应该记录jsessionid,因为每个有权访问日志文件的人都可以劫持每个用户会话.在tomcat中设置标题行时,您可能应该加密sessionid.
String sessionId = request.getSession().getId();
String crypt = yourcryptalgo(sessionId);
response.setHeader("X-JSESSIONID", crypt);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12737 次 |
| 最近记录: |