Hibernate Envers:记录用户的ip地址

时间:2016-11-02 11:38:02

标签: java hibernate hibernate-envers

我希望在我的审计表中记录当前用户的IP地址,目前这样做就像InetAddress.getLocalHost().toString()那样错误地记录了服务器IP。

通常我可以通过自动装配一个HttpRequest对象来做到这一点,但这在我在我的监听器中重写的newRevision()方法中是不可能的。

1 个答案:

答案 0 :(得分:2)

您可能需要查看this帖子。

在Web应用程序中,设置ThreadLocal变量的最佳位置通常在FilterInterceptor之内,基本上是任何类似于组件的代码。 Web请求处理程序的代码,保证已设置ThreadLocal变量。

然后,您只需访问Envers修订版实体侦听器中的ThreadLocal,并使用该值填充自定义字段。

请务必清除请求处理程序链末尾的ThreadLocal变量。