拦截会话集属性调用

时间:2014-08-02 22:02:26

标签: java tomcat java-ee web replication

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

1 个答案:

答案 0 :(得分:2)

看到HttpSessionAttributeListener不是一个适合您的解决方案,您可以选择使用ServletFilter。不确定是否会对您的要求过于干扰,但是......

  1. 首先在链中激活此ServletFilter
  2. 使用您自己的HTTPServletRequest实现传递HttpServletRequestWrapper您传递链,通过返回创建的原始容器的装饰器实现来覆盖getSession Session实施
  3. 您的装饰者是拦截setAttribute方法的门户。