在会话超时时设置Liferay Hook

时间:2015-02-03 15:01:39

标签: java session liferay session-timeout

如果Liferay 5.2.3 Portal的会话超时,我想用Java写一个Hook。

我设法编写了一个Hook,只要用户点击退出链接,就会执行一个Hook,并在liferay-hook.xml中使用以下设置:

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

但是如果会话超时,则不会调用Logout Hook,但是我需要在超时时执行相同的方法。我找不到会话超时的事件类型。

当会话超时并且识别结束会话的用户ID时,是否有办法执行Java方法?

1 个答案:

答案 0 :(得分:5)

有一个事件将在用户会话的会话到期/ TimeOut 事件时触发,

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

您可以在liferay-hook.xmlportal.properties [写在挂钩]或portal-ext.properties中添加此属性。

可以用作,

public class CustomPreSessionExpireAction extends SessionAction {

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

但是,我们只能在此使用HttpSession。所以,你需要找出在这里获得userId的方法。

由于