Код автоматического входа, написанный на основе документации Liferay 7. Пользователь успешно вошел в систему, но проблема возникает после того, как пользователь вошел в систему, Liferay повторно вызывает предварительный вход и автоматический вход снова.
public String[] login(
{
final String[] credentials = new String[3];
Cookie cookie = getCookie((HttpServletRequest) request, PropsUtil.get(COOKIE_NAME));
if(cookie == null){
request.setAttribute(AutoLogin.AUTO_LOGIN_REDIRECT, getRedirectUrl(request));
}else{
ValidateCookieResponse validateCookieResponse = Authenticate(cookie.getValue());
if(validateCookieResponse != null){
String userName = validateCookieResponse.getUser().getUserLogin();
if (StringUtils.isBlank(userName)){
request.setAttribute(AutoLogin.AUTO_LOGIN_REDIRECT, getRedirectUrl(request));
}else{
long companyId = PortalUtil.getCompanyId(request);
com.liferay.portal.kernel.model.User user = null;
try {
user = UserLocalServiceUtil.getUserByScreenName(companyId, userName);
} catch (PortalException e) {
request.setAttribute(AutoLogin.AUTO_LOGIN_REDIRECT, getRedirectUrl(request));
}
if(user != null){
credentials[0] = String.valueOf(user.getUserId());
credentials[1] = user.getPassword()
credentials[2] = String.valueOf(user.isPasswordEncrypted()) ;
return credentials;
}else{
request.setAttribute(AutoLogin.AUTO_LOGIN_REDIRECT, getRedirectUrl(request));
}
}
}
}
}else{
request.setAttribute(AutoLogin.AUTO_LOGIN_REDIRECT, getRedirectUrl(request));
}
return credentials;
}