无法将Syncope与Apache DS连接

时间:2015-07-22 10:11:39

标签: ldap apacheds apache-syncope

我在尝试将apache DS后端添加到apache syncope时遇到错误。

环境

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 resource

用户映射

enter image description here

我已将连接器定义如下

enter image description here

第2部分

enter image description here

我已经从晕厥中进行了测试,通过单击头盔图标可以很好地连接到Apache DS。 现在我添加了一个同步任务,如下所示 enter image description here

现在,当我执行它时,我收到此错误

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>

我经常搜索,但找不到任何解决方案。

1 个答案:

答案 0 :(得分:0)

在Syncope user @ mailing list上询问了这个主题:

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

请跟进。

很快,你至少需要

  1. 设置ONE-PHASE传播模式
  2. 将accountLink的JEXL表达式指定为用户映射页面
  3. 以[1]为参考指南
  4. [1] http://blog.tirasa.net/unlock-full-ldap-features-in