我们有一个第三方Java Web应用程序,它需要在集群中运行(我们需要在集群中复制会话),该应用程序中的会话属性不可序列化,并且我们不能访问源代码,它们是否干净,非侵入性的方法来拦截session.set属性调用并在将对象放入会话之前更改对象

最佳答案

看到HttpSessionAttributeListener不是适合您的解决方案,可以选择使用ServletFilter。但是不确定这是否会干扰您的需求...


在链中首先激活此ServletFilter
用您自己的HTTPServletRequest实现包装要传递给链的HttpServletRequestWrapper,通过返回原始容器创建的装饰器实现来覆盖getSession,以创建Session实现
装饰器是拦截setAttribute方法的网关。

09-30 14:47
查看更多