正如标题所说,我有一个spring mvc安全实现,效果很好,但我想在Web应用程序中管理用户登录。
我需要添加会话信息,例如"客户端IP地址,登录时间,用户的上次活动和登录状态(如果我想将其注销)"
我已经阅读了很多论坛,示例,甚至是春季文档,并且无法找到我需要的内容。
甚至尝试将bean添加到我的安全xml中,在我的LoginController中添加了@Resource sessionManager,并且出现了504错误。
另一个问题:有没有办法获取客户端IP地址?我现在正通过jquery用另一个网站发帖来获取它......但那很脏。
提前致谢。
答案 0 :(得分:0)
为了在所有会话中进行操作,您需要更高级别的'而不是会话,这意味着ApplicationContext。
通过扩展ServletContextListener并向web.xml添加侦听器定义,我做了类似的事情。
基本上: 在contextInitialized(ServletContextEvent事件)中,使用
添加侦听器的实例event.getServletContext().setAttribute("myContextListener", this);
当您需要某些内容时,请使用
的某些变体将对象从Context中移除(MyContextListener)request.getSession().getServletContext()
.getAttribute("myContextListener");
关于如何做到这一点' The Spring Way'(tm),好吧,我不知道......但是。