我想用 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.xml
或 portal.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/