0

我正在使用休眠事件侦听器来记录上次修改时间。我使用自定义集成器来注册事件侦听器。我通过在 META-INF 中创建一个具有特定名称的文件来注册我的集成器,如此所述。我还想记录当前登录用户的用户名。我假设信息将出现在 HttpSession 中。但是在MergeEventListener中我无权访问 HttpSession。我如何获取 HttpSession 或者有没有其他方法可以获取当前登录的用户?

4

2 回答 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 回答