LDAPユーザーインポート時に、特定のLDAP属性を無視する方法について説明します。
Liferay Portalの情報をユーザーが変更することがあります。 次にスケジュールされたLDAPインポートが実行されると、ユーザーによる変更が上書きされます。 変更が上書きされないようにするため、ユーザーはportal-ext.propertiesファイルでどの属性を無視するかを定義することができます。
さらに詳しく見るには、 PortalLDAPImporterImpl.javaの関数 updateUserの下にある UserLocalServiceUtil.updateUser の関数呼び出しに、利用できる属性のリストがあります。 接頭辞の "get "と "is "を取り除くと、属性が定義されます。 例えば、 getEmailAddressの場合、属性は "contact.EmailAddress"
となる。 これらの属性は、"contact "を先頭に付ける必要があります。 contact」を追加しなければならない理由は、プロパティが LDAPUser#contact.xxxxxx
としてビーンに登録されたからです。
以下は、属性を指定した関数呼び出しです:
user = UserLocalServiceUtil.updateUser(
user.getUserId(), password, StringPool.BLANK, StringPool.BLANK,
passwordReset, ldapUser.getReminderQueryQuestion(),
ldapUser.getReminderQueryAnswer(), ldapUser.getScreenName(),
ldapUser.getEmailAddress(), ldapUser.getFacebookId(),
ldapUser.getOpenId(), ldapUser.getLanguageId(),
ldapUser.getTimeZoneId(), ldapUser.getGreeting(),
ldapUser.getComments(), ldapUser.getFirstName(),
ldapUser.getMiddleName(), ldapUser.getLastName(),
ldapUser.getPrefixId(), ldapUser.getSuffixId(), ldapUser.isMale(),
birthdayMonth, birthdayDay, birthdayYear, ldapUser.getSmsSn(),
ldapUser.getAimSn(), ldapUser.getFacebookSn(), ldapUser.getIcqSn(),
ldapUser.getJabberSn(), ldapUser.getMsnSn(),
ldapUser.getMySpaceSn(), ldapUser.getSkypeSn(),
ldapUser.getTwitterSn(), ldapUser.getYmSn(), ldapUser.getJobTitle(),
ldapUser.getGroupIds(), ldapUser.getOrganizationIds(),
ldapUser.getRoleIds(), ldapUser.getUserGroupRoles(),
ldapUser.getUserGroupIds(), ldapUser.getServiceContext())
ユーザーは、Javaのクラスやメソッドを修正することを強くお勧めします。
解像度
- portal.propertiesの中で、利用可能な属性がどのように記載されているかを、ユーザーは確認することができます:
Set the user attributes that are controlled from the portal. When adding # or updating a user from LDAP, these attributes will be skipped. # ldap.user.ignore.attributes= #ldap.user.ignore.attributes=aimSn,comments,facebookId,facebookSn,greeting,icqSn,jabberSn,jobTitle,languageId,msnSn,mySpaceSn,openId,prefixId,reminderQueryAnswer,reminderQueryQuestion,skypeSn,smsSn,suffixId,timeZoneId,twitterSn,ymSn
-
ldap.user.ignore.attributes=
のプロパティをコピーして portal-ext.properties にコピーします。 - 無視するプロパティを追加する:例:
ldap.user.ignore.attributes=contact.EmailAddress
。 - ファイルを保存します。
- ポータルを起動します。 次回のLDAPインポート時に、LDAPプロセスはportal-ext.propertiesで定義されたこれらの属性を無視します。