【问题标题】:Session timeout based on community/group with LiferayLiferay 基于社区/组的会话超时
【发布时间】:2015-04-28 14:32:19
【问题描述】:

我需要自定义 Liferay 6.0.5 关于会话超时的行为。 我在同一个 Liferay 实例上有 3 个社区、2 个外联网和一个内联网 我希望为特定社区定义自定义超时(在 Intranet 上:无超时)。

我已经检查了 session_timeout.jspf 文件和 session.js 脚本,但我看不出如何对其进行自定义以使其正常工作?

【问题讨论】:

    标签: java session liferay liferay-6


    【解决方案1】:

    你也可以看看/ROOT/WEB-INF/web.xml,如下部分:

    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
    

    也在portal-ext.properties中:

    session.timeout=30
    session.timeout.warning=1
    session.timeout.auto.extend=false
    session.timeout.redirect.on.expire=true

    对于自定义处理程序,我会尝试修改 \liferay-portal-6.0.5\tomcat-6.0.26\webapps\ROOT\html\common\themes\session_timeout.jspf:

    类似这样的:

        <c:choose>
          <c:when test="<%= themeDisplay.getScopeGroup().getName().equals("MyCustomCommunity_1") %>">
            <aui:script use="liferay-session">
                Liferay.Session.init(
                  {
                    autoExtend: false /*my custom value*/,
                    timeout: 5 /*my custom value*/,
                    timeoutWarning: 0 /*my custom value*/,
                    redirectOnExpire: '/web/guest/mycustompage1' /*my custom value*/
                  }
                );
            </aui:script>
          </c:when>
          <c:when test="<%= themeDisplay.getScopeGroup().getName().equals("MyCustomCommunity_2") %>">
            <aui:script use="liferay-session">
                Liferay.Session.init(
                  {
                    autoExtend: true /*my custom value*/,
                    timeout: 15 /*my custom value*/,
                    timeoutWarning: 1 /*my custom value*/,
                    redirectOnExpire: '/web/guest/mycustompage2' /*my custom value*/
                  }
                );
            </aui:script>
          </c:when>
          <c:otherwise>
            <aui:script use="liferay-session">
              Liferay.Session.init(
                {
                  autoExtend: <%= PropsValues.SESSION_TIMEOUT_AUTO_EXTEND %>,
                  timeout: <%= sessionTimeout %>,
                  timeoutWarning: <%= sessionTimeoutWarning %>,
                  redirectOnExpire: <%= PropsValues.SESSION_TIMEOUT_REDIRECT_ON_EXPIRE %>
                }
              );
            </aui:script>
          </c:otherwise>
        </c:choose>
    

    【讨论】:

    • 好的,但相同的配置将应用于我的 3 个社区,我想要 2 个关于社区的不同配置
    • 我已经用一个可能的解决方案更新了代码,以根据当前组的名称设置您自己的自定义会话超时处理程序。
    【解决方案2】:

    redirectOnExpire: '/web/guest/mycustompage1' /*my custom value*/
    

    重定向到指定的url,如果用户点击页面上的任何链接或按钮,或者会话超时后会自动重定向。在我的 liferay 应用程序中,我们在仪表板页面上托管了几个小部件,当用户单击任何小部件时,它会打开一个新选项卡并显示小部件相关信息。当会话超时时,小部件在新选项卡中打开,但页面被重定向到 /web/guest/home ,这是所需的行为。但是仪表板页面仍然存在,因为该页面在会话超时后不会自动重定向到 /web/guest/home。如何使仪表板页面在会话超时后自动重定向到 /web/guest/home。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-25
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 2020-07-05
      • 2018-04-19
      • 2018-02-02
      相关资源
      最近更新 更多