РЕШЕНО Alfresco LDAP sync - сбрасывается значение полей.
Добрый день коллеги!
Имеем:
Используя документацию "Example: authentication and synchronization with one ldap-ad subsystem" настроил синхронизацию следующим образом:
alfresco-global.properties:
### authentication ###
authentication.chain=kerberos1:kerberos,ldap1:ldap-ad
### LDAP ###
ldap.authentication.allowGuestLogin=false
ldap.authentication.active=false
ldap.authentication.userNameFormat=%s@avtor.ru
ldap.authentication.java.naming.provider.url=ldap://smb
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=reader@avtor.ru
ldap.synchronization.java.naming.security.credentials=Jlyfljlktnjv44
ldap.synchronization.userSearchBase=CN=Users,DC=avtor,DC=ru
ldap.synchronization.groupSearchBase=CN=Users,DC=avtor,DC=ru
### CRON ###
synchronization.import.cron=1 */5 * * * ? *
В профиле пользователей появился защищёный от редактирования ряд полей. Например поле e-mail.
Проблема:
Поле e-mail будет иметь прежнее (самое первое) значение ровно до того момента, пока я не зайду в LDAP запись и что-нибудь не обновлю там, чтобы вызвать полную синхронизацию записи в alfresco. Т.е. перезапуск alfresco также не помогает. Помогает только изменение TimeShtamp в записи LDAP, чтобы вызвать полную пересинхронизацию записи с alfresco. Однако, при последующем изменении записи, всё снова возвращается на первоначальное значение поле в LDAP!
Подскажите пожалуйста, что я делаю не правильно? Что необходимо сделать, чтобы поля профиля привязанные к LDAP не сбрасывались на первоначальные значения?
Очевидно, что после того, как пользователь отредактировал свой профиль, alfresco берёт ВСЕ значения полей профиля из какого-то кеша... При том кеша который она созадала в первый раз при синхронизации.
Имеем:
- alfresco 4.2.1 EE (без поддержки)
- Ubuntu 12.04.4
Используя документацию "Example: authentication and synchronization with one ldap-ad subsystem" настроил синхронизацию следующим образом:
alfresco-global.properties:
### authentication ###
authentication.chain=kerberos1:kerberos,ldap1:ldap-ad
### LDAP ###
ldap.authentication.allowGuestLogin=false
ldap.authentication.active=false
ldap.authentication.userNameFormat=%s@avtor.ru
ldap.authentication.java.naming.provider.url=ldap://smb
ldap.authentication.defaultAdministratorUserNames=Administrator,alfresco
ldap.synchronization.java.naming.security.principal=reader@avtor.ru
ldap.synchronization.java.naming.security.credentials=Jlyfljlktnjv44
ldap.synchronization.userSearchBase=CN=Users,DC=avtor,DC=ru
ldap.synchronization.groupSearchBase=CN=Users,DC=avtor,DC=ru
### CRON ###
synchronization.import.cron=1 */5 * * * ? *
В профиле пользователей появился защищёный от редактирования ряд полей. Например поле e-mail.
Проблема:
- Создаём в LDAP пользователя: chapaev , Василий Чапаев , e-mail: chapaev@yandex.ru
- Входим под ним в alfresco, входим в его профиль, видим, что поля из LDAP приняли необходимые значения и защищены от редактирования.
- Например поле e-mail, имеет значение: chapaev@yandex.ru
- Вносим в LDAP каталог изменение e-mail (например): chapaeff@mail.com
- Снова входим в его профиль и видим, что изменения применились из LDAP каталога. (согласно расписанию cron) Т.е. поле e-mail, приняло значение: chapaeff@mail.com
- Вносим в любое доступное поле профиля изменение (например устанавливаем "аватар картинку", или заполняем поле телефон).
- Нажимаем 'Save chagnes'.
- Видим, что поле e-mail, снова имеет прежнее значение: chapaev@yandex.ru (значение первоначальной информации из LDAP)
Поле e-mail будет иметь прежнее (самое первое) значение ровно до того момента, пока я не зайду в LDAP запись и что-нибудь не обновлю там, чтобы вызвать полную синхронизацию записи в alfresco. Т.е. перезапуск alfresco также не помогает. Помогает только изменение TimeShtamp в записи LDAP, чтобы вызвать полную пересинхронизацию записи с alfresco. Однако, при последующем изменении записи, всё снова возвращается на первоначальное значение поле в LDAP!
Подскажите пожалуйста, что я делаю не правильно? Что необходимо сделать, чтобы поля профиля привязанные к LDAP не сбрасывались на первоначальные значения?
Очевидно, что после того, как пользователь отредактировал свой профиль, alfresco берёт ВСЕ значения полей профиля из какого-то кеша... При том кеша который она созадала в первый раз при синхронизации.
Комментарии
30/05/2014 - 11:10
Друзья, ответ выглядит следующим образом:
Когда пользователь входит в систему, share заносит в кеш его свойства (а именно: все поля, имя, email и т.д.), и если изменить данные в LDAP (AD), в тот момент когда пользователь "залогинен" в системе, и сделать полную синхронизацию с каталогом LDAP (у меня это для тестов было: synchronization.import.cron=1 */5 * * * ? * - каждые пять минут), то не смотря на успешную синхронизацию данные подтянутся из кеша share и всё будет плохо.
Вывод: по-умолчанию полная синхронизация выполняется в 0 часов каждые сутки. Так-как разработчики alfresco справедливо предполагают, что в это время никого нет в системе (ну или почти никого). И всё становится успешно.
Решение: или выгнать человека из системы, поля которого мы хотим изменить в LDAP и сделать синхронизацию вручную, или по регламенту на ночь заставлять всех выключать компьютеры, чтобы ночью всё само синхронизировалось, и утром вошедшие люди уже подцепили бы новые поля.