2012-02-16 2 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); 

더 나은 해결책을 원합니다.