Java 拦截会话集属性调用
我们有一个需要在集群中运行的第三方Java web应用程序(我们需要在集群中复制会话),应用程序中的会话属性不可序列化,我们无法访问源代码,它们是否干净,拦截session.set属性调用并在将对象放入会话之前更改对象的非侵入性方法查看Java 拦截会话集属性调用,java,tomcat,jakarta-ee,web,replication,Java,Tomcat,Jakarta Ee,Web,Replication,我们有一个需要在集群中运行的第三方Java web应用程序(我们需要在集群中复制会话),应用程序中的会话属性不可序列化,我们无法访问源代码,它们是否干净,拦截session.set属性调用并在将对象放入会话之前更改对象的非侵入性方法查看HttpSessionaDistributeListener不是一个适合您的解决方案,您可以选择使用ServletFilter。不确定的是,这对您的需求来说太过分了,不过 首先在链中激活此ServletFilter 用您自己的HttpServletRequestW
HttpSessionaDistributeListener
不是一个适合您的解决方案,您可以选择使用ServletFilter
。不确定的是,这对您的需求来说太过分了,不过
HttpServletRequestWrapper
实现包装HttpServletRequestWrapper
传递的链,通过返回创建的原始容器的装饰器实现来覆盖getSession
setAttribute
方法的网关我脑子里一直在想这个问题,但是我坚持要一个不那么麻烦的解决方案,我会尝试一下,如果我没有得到不同的观点,我会接受这个答案。另外,我在问自己,是否有人(很可能在servlet容器级别)有风险可以在装饰会话之前访问会话,甚至可以缓存原始会话对象。。。希望,尽管可能,但这样做的可能性很小。