如果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方法?
答案 0 :(得分:5)
有一个事件将在用户会话的会话到期/ TimeOut 事件时触发,
# Servlet session destroy event
servlet.session.destroy.events = com.extensions.hooks.CustomPreSessionExpireAction
您可以在liferay-hook.xml
或portal.properties
[写在挂钩]或portal-ext.properties
中添加此属性。
可以用作,
public class CustomPreSessionExpireAction extends SessionAction {
@Override
public void run(HttpSession session) throws ActionException {
//Code
}
}
但是,我们只能在此使用HttpSession
。所以,你需要找出在这里获得userId
的方法。
由于