我知道,如果您使用控制面板->用户->监视在liferay中以管理员身份登录,则可以杀死其他用户的会话。但是我想知道是否可以通过编程方式做到这一点?因为我正在尝试创建具有强制注销功能的用户管理。谢谢。
最佳答案
选项1 :
使用Liferay src中所示的以下代码行。
HttpSession session = request.getSession();
EventsProcessorUtil.process(
PropsKeys.LOGOUT_EVENTS_PRE, PropsValues.LOGOUT_EVENTS_PRE,
request, response);
String domain = CookieKeys.getDomain(request);
Cookie companyIdCookie = new Cookie(
CookieKeys.COMPANY_ID, StringPool.BLANK);
if (Validator.isNotNull(domain)) {
companyIdCookie.setDomain(domain);
}
companyIdCookie.setMaxAge(0);
companyIdCookie.setPath(StringPool.SLASH);
Cookie idCookie = new Cookie(CookieKeys.ID, StringPool.BLANK);
if (Validator.isNotNull(domain)) {
idCookie.setDomain(domain);
}
idCookie.setMaxAge(0);
idCookie.setPath(StringPool.SLASH);
Cookie passwordCookie = new Cookie(
CookieKeys.PASSWORD, StringPool.BLANK);
if (Validator.isNotNull(domain)) {
passwordCookie.setDomain(domain);
}
passwordCookie.setMaxAge(0);
passwordCookie.setPath(StringPool.SLASH);
选项2:
采用
AuthenticatedSessionManagerUtil.logout(request, response);
如LogoutAction.java中所示