Не удается подключить Syncope к Apache DS

Я столкнулся с ошибкой при попытке добавить серверную часть apache DS в обморок apache.

Окружающая среда

Apache DS v 2.00-M20
Apache syncope v 1.2.4
OS Windows 7 64 bit 

Я следовал руководству по Apache DS и импортировал файл ldif Apache DS data

Я успешно настроил syncope для работы с MySQL. Я добавил ресурс ldap следующим образом

ресурс ldap

Сопоставление пользователей

введите здесь описание изображения

Я определил разъем следующим образом

введите здесь описание изображения

часть 2

введите здесь описание изображения

Я проверил из обморока, и он прекрасно подключается к Apache DS, щелкнув значок шлема. Теперь я добавил задачу синхронизации, как показано ниже введите здесь описание изображения

Теперь, когда я его выполняю, я получаю эту ошибку

JobExecutionException: While syncing on connector
org.quartz.JobExecutionException: While syncing on connector [See nested exception: org.identityconnectors.framework.common.exceptions.ConnectorException: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas']
    at org.apache.syncope.core.sync.impl.SyncJob.executeWithSecurityContext(SyncJob.java:184)
    at org.apache.syncope.core.sync.impl.SyncJob.executeWithSecurityContext(SyncJob.java:55)
    at org.apache.syncope.core.sync.impl.AbstractSyncJob.doExecute(AbstractSyncJob.java:382)
    at org.apache.syncope.core.quartz.AbstractTaskJob.execute(AbstractTaskJob.java:125)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)
Caused by: org.identityconnectors.framework.common.exceptions.ConnectorException: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
    at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:81)
    at net.tirasa.connid.bundles.ldap.search.LdapSearch.execute(LdapSearch.java:139)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:136)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:57)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.rawSearch(SearchImpl.java:170)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.search(SearchImpl.java:129)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:159)
Caused by: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3063)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3033)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2840)
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1849)
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1772)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:386)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:356)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:339)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.searchBaseDN(VlvIndexSearchStrategy.java:117)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.doSearch(VlvIndexSearchStrategy.java:84)
    at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:71)
    ... 19 more


ConnectorException: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
org.identityconnectors.framework.common.exceptions.ConnectorException: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
    at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:81)
    at net.tirasa.connid.bundles.ldap.search.LdapSearch.execute(LdapSearch.java:139)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:136)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:57)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.rawSearch(SearchImpl.java:170)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.search(SearchImpl.java:129)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:159)
Caused by: javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3063)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3033)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2840)
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1849)
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1772)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:386)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:356)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:339)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.searchBaseDN(VlvIndexSearchStrategy.java:117)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.doSearch(VlvIndexSearchStrategy.java:84)
    at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:71)
    ... 19 more


NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]
javax.naming.NamingException: [LDAP: error code 36 - ALIAS_DEREFERENCING_PROBLEM: failed for MessageType : SEARCH_REQUEST
Message ID : 21
    SearchRequest
        baseDn : 'o=sevenseas'
        filter : '(&(&(objectClass=inetorgperson:[11])(objectClass=top))(cn=*:[∞]))'
        scope : whole subtree
        typesOnly : false
        Size Limit : no limit
        Time Limit : no limit
        Deref Aliases : deref Always
        attributes : 'cn', 'sn', 'uid', 'userPassword'
org.apache.directory.api.ldap.model.message.SearchRequestImpl@40da9795    Virtual List View Request Control
        oid : 2.16.840.1.113730.3.4.9
        critical : true
        beforeCount   : '0'
        afterCount   : '99'
        target : 
            offset   : '1'
            contentCount   : '0'
SortRequestControlImpl [sortKeys=[SortKey : [uid]]]: java.io.IOException: The system cannot find the path specified]; remaining name 'o=sevenseas'
    at com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3063)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:3033)
    at com.sun.jndi.ldap.LdapCtx.processReturnCode(LdapCtx.java:2840)
    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1849)
    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1772)
    at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:386)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:356)
    at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:339)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.searchBaseDN(VlvIndexSearchStrategy.java:117)
    at net.tirasa.connid.bundles.ldap.search.VlvIndexSearchStrategy.doSearch(VlvIndexSearchStrategy.java:84)
    at net.tirasa.connid.bundles.ldap.search.LdapInternalSearch.execute(LdapInternalSearch.java:71)
    at net.tirasa.connid.bundles.ldap.search.LdapSearch.execute(LdapSearch.java:139)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:136)
    at net.tirasa.connid.bundles.ldap.LdapConnector.executeQuery(LdapConnector.java:57)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.rawSearch(SearchImpl.java:170)
    at org.identityconnectors.framework.impl.api.local.operations.SearchImpl.search(SearchImpl.java:129)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ConnectorAPIOperationRunnerProxy.invoke(ConnectorAPIOperationRunnerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.local.operations.ThreadClassLoaderManagerProxy.invoke(ThreadClassLoaderManagerProxy.java:98)
    at com.sun.proxy.$Proxy215.search(Unknown Source)
    at sun.reflect.GeneratedMethodAccessor624.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.identityconnectors.framework.impl.api.BufferedResultsProxy$BufferedResultsHandler.run(BufferedResultsProxy.java:159)

Просто для двойной проверки я запустил поиск из командной строки, используя несвязанный ldap sdk, все работало нормально.

C:\Users\esiykha\Projects\SFTP\Software\unboundid-ldapsdk-2.3.8-se\tools>ld
rch --hostname "localhost" --port 10389 --baseDN "o=sevenseas" --scope "sub
bjectclass=inetorgperson)" "userPassword" "uid"
# Connected to localhost:10389
dn: cn=Cornelius Buckley,ou=people,o=sevenseas
uid: cbuckley
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Thomas Masterman Hardy,ou=people,o=sevenseas
uid: thardy
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Fletcher Christian,ou=people,o=sevenseas
uid: fchristi
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=John Hallett,ou=people,o=sevenseas
uid: jhallett
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=William Bligh,ou=people,o=sevenseas
uid: wbligh
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Horatio Nelson,ou=people,o=sevenseas
uid: hnelson
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Moultrie Crystal,ou=people,o=sevenseas
uid: mchrysta
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Thomas Quist,ou=people,o=sevenseas
uid: tquist
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=Horatio Hornblower,ou=people,o=sevenseas
uid: hhornblo
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=William Bush,ou=people,o=sevenseas
uid: wbush
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

dn: cn=John Fryer,ou=people,o=sevenseas
uid: jfryer
userPassword: {SHA}nU4eI71bcnBGqeO0t9tXvY1u5oQ=

# The search operation was processed successfully.
# Entries returned:  11
# References returned:  0

# Disconnected from the server
C:\Users\esiykha\Projects\SFTP\Software\unboundid-ldapsdk-2.3.8-se\tools>ld
rch --hostname "localhost" --port 10389 --baseDN "o=sevenseas" --scope "sub
bjectclass=inetorgperson)" "cn"
# Connected to localhost:10389
dn: cn=Cornelius Buckley,ou=people,o=sevenseas
cn: Cornelius Buckley

dn: cn=Thomas Masterman Hardy,ou=people,o=sevenseas
cn: Thomas Masterman Hardy

dn: cn=Fletcher Christian,ou=people,o=sevenseas
cn: Fletcher Christian

dn: cn=John Hallett,ou=people,o=sevenseas
cn: John Hallett

dn: cn=William Bligh,ou=people,o=sevenseas
cn: William Bligh

dn: cn=Horatio Nelson,ou=people,o=sevenseas
cn: Horatio Nelson

dn: cn=Moultrie Crystal,ou=people,o=sevenseas
cn: Moultrie Crystal

dn: cn=Thomas Quist,ou=people,o=sevenseas
cn: Thomas Quist

dn: cn=Horatio Hornblower,ou=people,o=sevenseas
cn: Horatio Hornblower

dn: cn=William Bush,ou=people,o=sevenseas
cn: William Bush

dn: cn=John Fryer,ou=people,o=sevenseas
cn: John Fryer

# The search operation was processed successfully.
# Entries returned:  11
# References returned:  0

# Disconnected from the server
C:\Users\esiykha\Projects\SFTP\Software\unboundid-ldapsdk-2.3.8-se\tools>

У меня много поиска, но я не могу найти никакого решения.


person windwaker    schedule 22.07.2015    source источник


Ответы (1)


Эта тема задана в списке рассылки Syncope user@:

http://syncope-user.1051894.n5.nabble.com/Issues-connecting-apache-syncope-with-apache-DS-td5708095.html

Пожалуйста, следуйте туда.

Вкратце, вам нужно, по крайней мере,

  1. установить ОДНОФАЗНЫЙ режим распространения
  2. укажите выражение JEXL для accountLink на странице сопоставления пользователей
  3. взять [1] в качестве справочного руководства

[1] http://blog.tirasa.net/unlock-full-ldap-features-in

person Francesco Chicchiriccò    schedule 22.07.2015
comment
Добро пожаловать! Обратите внимание, что ответы только по ссылкам здесь не приветствуются. Не могли бы вы резюмировать основные моменты этой темы здесь? - person anderas; 22.07.2015