我们有一个第三方Java Web应用程序,它需要在集群中运行(我们需要在集群中复制会话),该应用程序中的会话属性不可序列化,并且我们不能访问源代码,它们是否干净,非侵入性的方法来拦截session.set属性调用并在将对象放入会话之前更改对象
最佳答案
看到HttpSessionAttributeListener
不是适合您的解决方案,可以选择使用ServletFilter
。但是不确定这是否会干扰您的需求...
在链中首先激活此ServletFilter
用您自己的HTTPServletRequest
实现包装要传递给链的HttpServletRequestWrapper
,通过返回原始容器创建的装饰器实现来覆盖getSession
,以创建Session
实现
装饰器是拦截setAttribute
方法的网关。