java - 在 session 超时时设置 Liferay Hook

标签 java session liferay session-timeout

我想用 Java 编写一个 Hook ,如果我的 Liferay 5.2.3 门户的 session 超时,它就会执行。

我设法编写了一个钩子(Hook),每当用户单击注销链接时,它就会在 liferay-hook.xml 中使用以下设置执行:

<hook>
    <event>
        <event-class>com.extensions.hooks.LogoutHook</event-class>
        <event-type>logout.events.pre</event-type>
    </event>
</hook>

然而,如果 session 超时,Logout Hook 不会被调用,但我需要在超时时执行相同的方法。我没有找到 session 超时的事件类型。

有没有办法在 session 超时时执行 Java 方法并识别已结束 session 的用户 ID?

最佳答案

有一个事件将在用户 session 的 session 到期/超时事件时触发,

# Servlet session destroy event
servlet.session.destroy.events = com.extensions.hooks.CustomPreSessionExpireAction

您可以在 liferay-hook.xmlportal.properties [Written in Hook] 或 portal-ext.properties 中添加此属性>.

并且可以用作,

public class CustomPreSessionExpireAction extends SessionAction {

    @Override
    public void run(HttpSession session) throws ActionException {
        //Code
    }
}

但是,我们只能在这里使用HttpSession。所以,这里需要想办法获取userId

谢谢

关于java - 在 session 超时时设置 Liferay Hook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28302029/

相关文章:

java - 每个项目启动时出现 Eclipse 错误

ruby-on-rails - Rails 4 session 不会跨请求持续存在

java - Hibernate Session.delete() 一个对象(如果存在)

php - 在 PHP 中安全地保存 session 数据

java - Liferay Asset - 如何在不更改创建日期的情况下更新liferay asset?

java - Liferay:自定义在 portlet 部署期间添加的 web.xml HeaderFilter

java - 在 Web 应用程序中设置运行时属性

java - CPU 进程可以决定应用程序的速度潜力

Liferay 门户组件响应 : how to set status code?

java - 如果您在不更改任何字段值的情况下进行更新,Hibernate Envers 是否会创建审核表的修订版本?