我希望在我的审计表中记录当前用户的IP地址,目前这样做就像InetAddress.getLocalHost().toString()
那样错误地记录了服务器IP。
通常我可以通过自动装配一个HttpRequest对象来做到这一点,但这在我在我的监听器中重写的newRevision()
方法中是不可能的。
答案 0 :(得分:2)
您可能需要查看this帖子。
在Web应用程序中,设置ThreadLocal
变量的最佳位置通常在Filter
或Interceptor
之内,基本上是任何类似于组件的代码。 Web请求处理程序的代码,保证已设置ThreadLocal
变量。
然后,您只需访问Envers修订版实体侦听器中的ThreadLocal
,并使用该值填充自定义字段。
请务必清除请求处理程序链末尾的ThreadLocal
变量。