2012-02-16 16 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に移行する方法を提案できますか?

usersテーブルのDBを経由してパスワードを直接コピーしようとしました(私はそれが知られていませんが、どこかで起動しなければなりませんでした)。 うまくいかなかった。

両方のバージョンで使用されている暗号化アルゴリズムはMD5です。エンコードのダイジェストに違いはありますか? Liferay 4.4.2にダイジェスト列はありませんが、Liferay 6.0.6で1つが表示されます。

どのようにパスワードを移行できますか?

+1

既存のインスタンスを更新するのではなく、新しいインスタンスを起動しますか?更新する場合は、更新手順でこれを自動的に処理する必要があります。これらのバージョンのパスワードハッシュの違いがあるかどうかは分かりませんが(あなたがそうだと思いますが)、アップグレードルーチンで解決策が見つかるかもしれませんが、アップグレードのバージョンはわかりません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); 

もっと良い解決策はありますか?

関連する問題