2012-02-16 5 views
0

У некоторых пользователей в Liferay 4.4.2, которые в настоящее время активны, все имеют действующие пароли. У этих же пользователей в Liferay 6.0.6 все они добавлены с паролем по умолчанию.Перенос паролей пользователей из Liferay 4.4.2 в Liferay 6.0.6

Можете ли вы предложить способ переноса паролей пользователей с Liferay 4.4.2 на Liferay 6.0.6?

Пробовал копировать пароли через DB в таблице пользователей (я знаю, что это не рекомендуется, но я должен был начать где-то). Не получилось.

Алгоритм шифрования, используемый в обеих версиях, - MD5. Есть ли разница в кодировании кодировки? В Liferay 4.4.2 нет ни одного дайджестового столбца, но можно увидеть его в Liferay 6.0.6

Как я могу перенести пароли?

+1

Вы начинаете новый экземпляр, а не обновляете существующий? Если вы обновляете, процедура обновления должна позаботиться об этом сама по себе. Я не знаю, существует ли разница между хэшированием паролей в этих версиях (но, как вы говорите, возможно, это так) - вы можете найти решение в процедурах обновления, но я не могу сказать, какая версия обновления будет иметь появилось. Одна вещь. Как вы знаете, не рекомендуется напрямую менять базу данных: вам просто нужно перезапустить, чтобы получить изменения, полученные ... –

+0

Да. Я не использовал тот же db. Используется новый экземпляр. Попробовал перезапуск после изменений без положительного результата. Я просмотрел сценарии, но не смог найти ничего, что изменило бы поля пароля. Попытка изолировать процесс хэширования паролей обеих версий Liferay и сравнить результаты. Будет ли сообщение, если найду что-нибудь. Спасибо Олафу :) –

ответ

0

В настоящее время вы используете функции забытого пароля, чтобы интимные пользователи могли изменять свои пароли, которые, как я знаю, являются беспокойными. Вот так я сделал это:

ThemeDisplay themeDisplay = (ThemeDisplay) actionRequest.getAttribute(WebKeys.THEME_DISPLAY); 
Company company = themeDisplay.getCompany(); 
ServiceContext serviceContext = ServiceContextFactory.getInstance(PortalUtil.getHttpServletRequest(actionRequest)); 
//Replace the variables with corresponding values 
UserLocalServiceUtil.sendPassword(companyId, emailAddress, remoteAddr, remoteHost, userAgent, fromName, fromAddress, subject, body, serviceContext); 

Любые лучшие решения приветствуются.

Смежные вопросы