Hi all,
We have a Bloomreach project deployed in Kubernetes with multiple replicas and a frontend SPA with multiple replicas as well. Communication works fine between SPA/frontend even in Experience manager using sticky session.
We’ve configured Spring Security and Spring Session for the /site application. In addition, Spring Session is configured to store the session in Redis, so any /site replica has access to the user session.
The site application frontend SPA works fine with this setup. However, when we try to load the SPA within Experience Manager in the CMS the following request fails:
/site/_cmssessioncontext?cmsCSID=0d2ffaa7-f59f-4a18-8d7c-77444e6dd00f&cmsSCID=c32c5fd0-3114-4a18-916e-c35e8a054b13
Backend logs shows nothing. However, debugging in local I found the following exception:
DefaultSerializer requires a Serializable payload but received an object of type [org.onehippo.cms7.services.cmscontext.CmsContextServiceImpl$CmsSessionContextImpl]
Which sounds like Redis is trying to store an object that is not Serializable.
I tried different options, like excluding _cmsXXX internal requests from being processed by Spring SessionRepositoryFilter. But nothing worked so far.
I also saw there’s a section in this project about Spring Session: HST - Spring Framework Support Documentation – Spring Session integration, that even mentions Redis.
Could anyone confirm if Bloomreach support Redis in combination with Spring Session for HST?
Thanks!