Как зашифровать пароль при сохранении пользователей в Liferay 6.1?

Я пытаюсь использовать сущность пользователя Liferay для добавления пользователей путем написания кода. Пароль не шифруется, поэтому вход в систему не выполняется. Код вставляется ниже.

    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)?

2 ответа

Укажите алгоритм шифрования для шифрования паролей в portal-ext.properties файл.

Например,

passwords.encryption.algorithm=SHA // Проверьте разные алгоритмы в portal.properties

Я думаю, что вы должны использовать 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

Другие вопросы по тегам