我正在使用休眠事件侦听器来记录上次修改时间。我使用自定义集成器来注册事件侦听器。我通过在 META-INF 中创建一个具有特定名称的文件来注册我的集成器,如此处所述。我还想记录当前登录用户的用户名。我假设信息将出现在 HttpSession 中。但是在MergeEventListener中我无权访问 HttpSession。我如何获取 HttpSession 或者有没有其他方法可以获取当前登录的用户?
问问题
1838 次
2 回答
1
我见过的最常见的解决方案是使用 servlet-filterThreadLocal
在请求进入时将信息放入 a 中,这样您就可以在堆栈下方的任意点从静态上下文中访问它。
于 2013-02-21T00:48:40.247 回答
1
您可以在单例类中创建一个实用程序方法并放入以下代码行,它随时返回登录的 Usrename
SecurityContextHolder.getContext().getAuthentication().getPrincipal()
我在我的网络应用程序中使用 Spring + Hibernate 做了同样的事情。
希望这对您也有帮助。
于 2013-02-21T08:34:40.610 回答