2012-06-06 38 views
3

我有一個基於Grails的web應用程序,它使用Spring Security來處理用戶登錄等。我打了一個塊,希望更有經驗的人可以指向我解決方案的正確方向。通過Ajax調用防止會話刷新(grails)

該應用程序具有消息的概念,可以從用戶發送到用戶以提供即時消息功能。在整個系統中都有一個定時的Ajax調用,用於提醒用戶任何新的傳入消息。

我的問題是,由於我已經實現了這一點,每次執行ajax調用,當然用戶會話正在刷新,因此從不超時。因此,手動「註銷」是他們註銷的唯一方式,而在會話到期之前會將其重定向到登錄頁面。

有沒有人知道我仍然可以完成自動註銷,同時還有定時器功能?

我希望我可以用spring安全設置某種過濾器,或者可以在週期性調用的方法上使用註釋來指示它不刷新用戶會話。

與往常一樣,任何幫助&意見表示讚賞。

+0

嗨戴夫,很好的問題。這個問題可能會幫助你一些新的想法:http://stackoverflow.com/questions/2691593/approaches-to-timing-out-sessions-on-a-web-app-using-ajax-autorefreshes –

+0

謝謝你。那裏有一些有用的信息。 – Dave

+0

不客氣:)。順便說一句,我的名字是龍。在我的語言裏,把名字叫做「last」是很自然的:) –

回答

2

感謝Long對他的評論指向另一個方向,我相信我現在擁有更好,更直觀的用戶友好型解決方案。

而不是試圖改變後端的東西,我使用了一個小的jQuery腳本,它非常容易配置,完全適合我的應用程序,它已經使用jQuery和jQuery UI。

經過一段特定時間後,會彈出一個jQuery對話框,以模態方式調暗背景,並通知用戶由於不活動而很快被註銷。如果用戶沒有點擊我的「繼續工作」按鈕,會顯示一個進度條,直到它變空爲止,然後我將窗口位置更改爲彈簧安全註銷控制器URL,並將它們帶回到登錄頁面。它工作精美,配置非常簡單。

的說明可以在這裏找到:http://kenbrowning.blogspot.co.uk/2010/04/are-you-still-there.html

榮譽給肯·勃朗寧爲他的圖書館。