0

コードを記述して、Liferay の User エンティティを使用してユーザーを追加しようとしています。パスワードが暗号化されていないため、ログインに失敗しています。コードは以下に貼り付けています。

    int countOfUsr = UserLocalServiceUtil.getUsersCount();
    User user = UserLocalServiceUtil.createUser(countOfUsr + 1);
    Date date = new Date();
    user.setCompanyId(countOfUsr + 1);
    user.setCreateDate(date);
    user.setModifiedDate(date);
    user.setDefaultUser(false);
    user.setContactId(countOfUsr + 1);
    user.setPasswordEncrypted(true);
    user.setAgreedToTermsOfUse(true);
    user.setPassword("123");
    user.setPasswordReset(false);
    user.setPasswordModifiedDate(date);
    user.setReminderQueryQuestion("what-is-your-father's-middle-name");
    user.setReminderQueryAnswer("daddad");
    user.setGraceLoginCount(0);
    user.setScreenName("shibu");
    user.setFirstName("SHIBU");
    user.setEmailAddress("shibu@liferay.com");
    user.setFacebookId(0);
    user.setOpenId("");
    user.setPortraitId(0);
    user.setLanguageId("en_US");
    user.setTimeZoneId("GMT");
    UserLocalServiceUtil.addUser(user);
  1. ユーザーを適切に保存するようにコードを変更するにはどうすればよいですか?
  2. pssword 暗号化のために何をすべきか?
  3. user.setDigest(arg) に値を与える方法は?
4

2 に答える 2

1

ファイル内のパスワードを暗号化するための暗号化アルゴリズムを指定しportal-ext.propertiesます。

たとえば、

passwords.encryption.algorithm=SHA // portal.properties でさまざまなアルゴリズムを確認してください

于 2013-01-24T03:32:27.997 に答える
0

UserLocalServiceUtil.addUser(whole bunch of arguments)の代わりに使うべきだと思いますUserLocalServiceUtil.addUser(User)。ユーザーを作成し、パスワードを暗号化します。

メソッドのシグネチャは次のとおりです。

public User addUser(
        long creatorUserId, long companyId, boolean autoPassword,
        String password1, String password2, boolean autoScreenName,
        String screenName, String emailAddress, long facebookId,
        String openId, Locale locale, String firstName, String middleName,
        String lastName, int prefixId, int suffixId, boolean male,
        int birthdayMonth, int birthdayDay, int birthdayYear,
        String jobTitle, long[] groupIds, long[] organizationIds,
        long[] roleIds, long[] userGroupIds, boolean sendEmail,
        ServiceContext serviceContext)
    throws PortalException, SystemException

注意: パスワードがパスワード ポリシーを検証しない場合、UserPasswordException

于 2013-04-19T02:42:15.393 に答える