Выполняем переход с корпоративной версии Alfresco 4.2 на 5.1.В компании есть два домена Active Directory (основной и дочерний), поэтому в Alfresco 5.1 мы настраиваем две подсистемы LDAP (AD).
Структура свойств: / opt / tomcat7 / shared / классы / alfresco / extension / subsystems / Аутентификация / ldap-ad / ldap2 / opt / tomcat7 / shared / классы / alfresco / extension / subsystems /Аутентификация / ldap-ad / ldap1
Проблема заключается в том, что аутентификация и синхронизация работают только для одной подсистемы ldap-ad (ldap1 или ldap2), которая занимает первое место в списке цепочки аутентификации (ldap1 и ldap2).не работать вместе).
Скриншот цепочки аутентификации
Например, если ldap1 занимает первое место в списке, то логин этого пользователя из ldap2 не будет выполнен (и наоборот!).В этом случае я смотрю ошибку в alfresco.log:
Caused by: net.sf.acegisecurity.AuthenticationCredentialsNotFoundException: A valid SecureContext was not provided in the RequestContext
Мои свойства:
/ opt / tomcat7 / shared / classes / alfresco / extension / subsystems / Authentication / ldap-ad / ldap1 / ldap-ad-authentication.properties
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@fake.local
ldap.authentication.java.naming.provider.url=ldap://fake.local:***
ldap.authentication.defaultAdministratorUserNames=fake_user
ldap.authentication.java.naming.referral=follow
ldap.synchronization.java.naming.security.principal=fake_user@fake.local
ldap.synchronization.java.naming.security.credentials=somepassword
ldap.synchronization.groupSearchBase=ou=Archiv,ou=FileServerGroups,ou=Groups,dc=fake,dc=local
ldap.synchronization.userSearchBase=dc=fake,dc=local
ldap.synchronization.groupDisplayNameAttributeName=description
ldap.synchronization.userOrganizationalIdAttributeNameCustom=distinguishedName
ldap.synchronization.com.sun.jndi.ldap.connect.pool=true
/ opt / tomcat7 / shared / классы / под открытым небом / расширение / подсистемы / аутентификация / ldap-ad / ldap2 /ldap-ad-authentication.properties
ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@gss.fake.local
ldap.authentication.java.naming.provider.url=ldap://gss.fake.local:***
ldap.authentication.defaultAdministratorUserNames=fake_user
ldap.authentication.java.naming.referral=follow
ldap.synchronization.java.naming.security.principal=fake_user@fake.local
ldap.synchronization.java.naming.security.credentials=somepassword%
ldap.synchronization.groupSearchBase=ou=Archiv,ou=FileServerGroups,ou=Groups,dc=gss,dc=fake,dc=local
ldap.synchronization.userSearchBase=dc=gss,dc=fake,dc=local
ldap.synchronization.groupDisplayNameAttributeName=description
ldap.synchronization.userOrganizationalIdAttributeNameCustom=distinguishedName
ldap.synchronization.com.sun.jndi.ldap.connect.pool=true
alfresco-global.properties
### Authentication ###
#authentication.chain=ldap1:ldap-ad,ldap2:ldap-ad,alfrescoNtlm1:alfrescoNtlm
authentication.chain=alfinst:alfrescoNtlm,ldap1:ldap-ad,ldap2:ldap-ad
Заранее спасибо!