0

正如标题所说,我有一个 spring mvc 安全实现,效果很好,但我想在 web 应用程序中管理用户登录。

我需要添加会话信息,例如“客户端 IP 地址、登录时间、用户的上次活动和登录状态(如果我想注销它们)”

我已经阅读了很多论坛、示例,甚至是 spring 文档,但找不到我需要的东西。

甚至尝试将 bean 添加到我的安全 xml 中,在我的 LoginController 中添加 @Resource sessionManager,并得到 504 错误。

另一个问题:有没有办法获取客户端IP地址?我现在通过使用 jquery 在另一个网站上发帖来获得它......但这很脏。

提前致谢。

4

1 回答 1

0

为了对“所有会话”进行操作,您需要比会话“更高”,这意味着 ApplicationContext。

通过扩展 ServletContextListener 并向 web.xml 添加侦听器定义,我做了一些类似的事情。

基本上:在 contextInitialized(ServletContextEvent event) 添加你的监听器实例

event.getServletContext().setAttribute("myContextListener", this);

当您需要某些东西时,将对象从上下文中取出,并带有一些变化

(MyContextListener)request.getSession().getServletContext()
    .getAttribute("myContextListener");

至于如何做'The Spring Way'(tm),好吧,我不知道......但是。

于 2013-03-27T19:35:19.687 回答