Magnolia CMS 公共和会话范围 Bean

Posted

技术标签:

【中文标题】Magnolia CMS 公共和会话范围 Bean【英文标题】:Magnolia CMS Public and Session Scope Bean 【发布时间】:2015-04-20 09:07:49 【问题描述】:

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

我正在开发基于 Magnolia 5.2.4 的简单应用程序,该应用程序在 tomcat 7.0.5 上工作。我也将 Blossome 与 Spring MVC 一起使用

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

    当我在用户登录后键入 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**/**

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

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

最好的问候 一月

【问题讨论】:

【参考方案1】:

当您在另一台计算机上获取旧数据时,尝试登录公共实例的管理界面,进入工具/缓存工具,然后单击页面底部的“全部刷新”按钮。看看问题是否消失。我怀疑您正在缓存特定于用户且不应被缓存的页面。如果上述测试有助于解决问题,您应该查看缓存配置以重新配置它以从缓存中排除具有个性化信息的页面。

HTH, 一月

【讨论】:

你好 Jan。非常感谢你,你帮了我很多。问题解决了;)

以上是关于Magnolia CMS 公共和会话范围 Bean的主要内容,如果未能解决你的问题,请参考以下文章

Magnolia CMS - 公共用户注册通知

MAGNOLIA CMS - cmsu:simpleSearch 在作者实例中工作,但在公共实例中不返回任何结果

使用社交媒体帐户(即 Facebook)注册/登录到 magnolia cms

在 Magnolia CMS 社区中添加数据同步模块?

Magnolia CMS : 介绍 Magnolia 教程不适用于 Magnolia CE 和 EE

Magnolia CMS - 集成第三方系统