2013-02-11 67 views
1

我想記錄一個唯一的標識符到我的應用程序日誌中,這將清楚地跟蹤Spring MVC應用程序中用戶的每次訪問。目的是將這個標識符存儲在一個cookie中,grep存儲符合標識符的日誌。當QA或客戶支持部門遇到應用程序問題時,他們將從cookie中提供標識符的價值,並可供應用程序開發團隊用於搜索和排除故障。記錄沒有JSESSIONID的用戶的每次唯一訪問

我不想使用JSESSIONID,因爲它可以被劫持。我目前正在記錄時間戳和用戶標識,但是當用戶可以從多個瀏覽器同時登錄時,這沒有幫助。

春天是否提供任何功能來支持?如果沒有,有沒有辦法仍然使用JSESSIONID但阻止會話劫持?

+0

您不想抑制用戶可以有多個會話嗎? SS會給你幾乎免費的。我不太瞭解你的設置。您使用用戶ID意味着存在某種身份驗證。因此,仍然使用jsessionid? – 2013-02-11 22:42:49

+0

我有一個使用sha證書的WebSeal身份驗證。基本上,問題是如果我將日誌文件中的所有會話ID集中記錄,那麼有權訪問日誌和應用程序的人可能會錯誤地使用它 – aprajitha 2013-02-11 22:54:32

回答

2

取出會話ID(jsessionid)並使用SHA-1或類似項對其進行哈希處理。理論上,散列是不可逆的,但是由於輸入是唯一的,所以是獨一無二的。

我們使用一個ServletFilter將該值存儲在MDC(slf4j/log4j)中,然後允許我們在日誌模式中使用該值。示例:http://veerasundar.com/blog/2009/11/log4j-mdc-mapped-diagnostic-context-example-code/

+0

Thanks @Marcel。我實際上使用servlet過濾器/ MDC捕獲會話ID。我可以嘗試散列它,或者我也讀取UUID可以隨機生成。感謝您的建議。 – aprajitha 2013-02-12 14:34:10

+0

@aprajitha,很高興幫助。請考慮[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)給他人一個提示 – 2013-02-12 15:29:19

相關問題