Magnolia CMS Public 和会话范围 Bean

Magnolia CMS Public and Session Scope Bean

几天来,我一直在尝试使用 Magnolia 和 Spring 会话 bean 解决我的问题,但经过几个小时后,我没有更多的想法可能出了什么问题。

我正在基于 Magnolia 5.2.4 在 tomcat 7.0.5 上开发简单的应用程序。我也在使用 Blossome 和 Spring MVC

我遇到的问题,只出现在 Public 上的匿名用户,它是关于会话 Bean,我用它来保留所有记录的使用数据 - 是的,我没有使用 spring 安全不要让事情变得更复杂。所以我有我的会话范围 bean,它存储例如记录的用户数据。我正在从 jsp 页面等

上的 bean 中检索
  1. 当我在用户登录后输入 www.my_doman.com/appName 时(并且会话 bean 中填充了用户数据)似乎我得到了一些新的会话 bean,因为用户数据为空 (= null)。当我做一些像 www.my_doman.com/appName/action.html 甚至 www.my_doman.com/appName// 这样的动作时,正确的控制器被触发,我得到了正确的我在他登录后立即填充的带有用户数据的会话 bean。更重要的是 www.my_doman.com/appName 的行为与 www.my_doman.com/appName**/**[= 不同11=]

  2. 当我注销时,清理存储在 sessionBean (sessionBean.setUserData(null); ) 中的用户数据并使会话无效 (request.getSession().invalidate) 有时我'我正在获取 'old' 用户数据。即使在其他计算机上,我也可以拦截在其他计算机上登录的用户。 所以 - 我正在单击 'log out' 并且控制器和 jsp 没有找到任何用户数据(正确的是什么)但是当我将我的操作更改为 www.my_doman.com/appName / 旧会话 bean returns 具有已注销的用户数据。在超级用户的作者上它工作得很好.......

有人知道哪里出了问题吗?我尝试使用匿名用户 magnolia 权限,但这不是我想的那样。

最好的问候 一月

当您在另一台计算机上获取旧数据时,尝试登录到 public 实例的管理界面,转到 Tools/Cache 工具并单击底部的 "Flush all" 按钮这一页。看看问题是否消失了。我怀疑您正在缓存特定于用户且不应缓存的页面。如果上述测试有助于解决问题,您应该查看缓存配置以重新配置它以从缓存中排除具有个性化信息的页面。

HTH,
一月