在会话超时时设置 Liferay Hook
Set Liferay Hook on session timeout
我想在 Java 中编写一个挂钩,如果我的 Liferay 5.2.3 门户的会话超时则执行该挂钩。
我设法编写了一个挂钩,每当用户单击注销 link 时都会在 liferay-hook.xml
中使用以下设置执行该挂钩:
<hook>
<event>
<event-class>com.extensions.hooks.LogoutHook</event-class>
<event-type>logout.events.pre</event-type>
</event>
</hook>
然而,如果会话超时,Logout Hook 不会被调用,但我需要在超时时执行相同的方法。我没有找到会话超时的事件类型。
有没有办法在会话超时时执行 Java 方法并识别已结束会话的用户 ID?
有一个事件将在用户会话的 会话 Expiry/TimeOut 事件上触发,
# 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 中编写一个挂钩,如果我的 Liferay 5.2.3 门户的会话超时则执行该挂钩。
我设法编写了一个挂钩,每当用户单击注销 link 时都会在 liferay-hook.xml
中使用以下设置执行该挂钩:
<hook>
<event>
<event-class>com.extensions.hooks.LogoutHook</event-class>
<event-type>logout.events.pre</event-type>
</event>
</hook>
然而,如果会话超时,Logout Hook 不会被调用,但我需要在超时时执行相同的方法。我没有找到会话超时的事件类型。
有没有办法在会话超时时执行 Java 方法并识别已结束会话的用户 ID?
有一个事件将在用户会话的 会话 Expiry/TimeOut 事件上触发,
# 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
谢谢