Je devais remplacer la méthode addUser()
pour effectuer certaines actions après l'importation d'un utilisateur à partir de LDAP et son ajout à Liferay. J'ai suivi ces étapes (environnement Eclipse):Les modifications de Liferay apportées au code source via le plugin ext n'ont pas lieu
- Créé nom de projet de plugin ext customLdap;
- Dans docroot/WEB-INF/ext-impl/src J'ai créé un nom de package de com.liferay.portal.security.ldap
- Là, je crée mon CustomPortalLDAPImporterImpl.java classe extension portalLDAPImporterImpl. java et remplacer la méthode addUser
code extrait:
@Override
protected User addUser(long companyId, LDAPUser ldapUser, String password)
throws Exception {
if (_log.isDebugEnabled()) {
_log.debug("Adding user " + ldapUser.getEmailAddress());
}
boolean autoPassword = ldapUser.isAutoPassword();
if (!PropsValues.LDAP_IMPORT_USER_PASSWORD_ENABLED) {
autoPassword = PropsValues.LDAP_IMPORT_USER_PASSWORD_AUTOGENERATED
&& !PropsValues.AUTH_PIPELINE_ENABLE_LIFERAY_CHECK;
if (!autoPassword) {
String defaultPassword = PropsValues.LDAP_IMPORT_USER_PASSWORD_DEFAULT;
if (StringUtil.equalsIgnoreCase(defaultPassword,
_USER_PASSWORD_SCREEN_NAME)) {
defaultPassword = ldapUser.getScreenName();
}
password = defaultPassword;
}
}
Calendar birthdayCal = CalendarFactoryUtil.getCalendar();
birthdayCal.setTime(ldapUser.getBirthday());
int birthdayMonth = birthdayCal.get(Calendar.MONTH);
int birthdayDay = birthdayCal.get(Calendar.DAY_OF_MONTH);
int birthdayYear = birthdayCal.get(Calendar.YEAR);
User user = UserLocalServiceUtil.addUser(ldapUser.getCreatorUserId(),
companyId, autoPassword, password, password,
ldapUser.isAutoScreenName(), ldapUser.getScreenName(),
ldapUser.getEmailAddress(), 0, StringPool.BLANK,
ldapUser.getLocale(), ldapUser.getFirstName(),
ldapUser.getMiddleName(), ldapUser.getLastName(), 0, 0,
ldapUser.isMale(), birthdayMonth, birthdayDay, birthdayYear,
StringPool.BLANK, ldapUser.getGroupIds(),
ldapUser.getOrganizationIds(), ldapUser.getRoleIds(),
ldapUser.getUserGroupIds(), ldapUser.isSendEmail(),
ldapUser.getServiceContext());
_log.info("-----------------------------------------User||||Added----------------------------------------");
if (ldapUser.isUpdatePortrait()) {
byte[] portraitBytes = ldapUser.getPortraitBytes();
if (ArrayUtil.isNotEmpty(portraitBytes)) {
user = UserLocalServiceUtil.updatePortrait(user.getUserId(),
portraitBytes);
}
}
return user;
}
nom du dossier créé META-INF dans docroot/WEB-INF/ext-impl/src
Dans META-INF créé un fichier nommé ext-spring.xml avec le code suivant:
- construction et publié mon plugin
- copié le fichier customLdap-ext.war du dossier dist et collé dans mon Tomcat deploy
- commencé mon serveur l'ancienne configuration sont chargés aucun journal est imprimé alors qu'un nouvel utilisateur est importé de ldap
Où est-ce que je me trompe en faisant cela?
Note: J'utilise Liferay 6.2.0.1 CE-GA6
6.2.0.1 CE-GA6? Où avez-vous eu cela - des sources originales, il n'existe pas. 6.2.5 serait la version correspondant à "GA6", 6.2.0 est GA1. Je n'ai jamais entendu parler de 6.2.0.1 –