Евгений Подберезкин
2018-11-19 04:14:00 UTC
Hi.
I configured my server according to official documentation. Creating
entries in ldap works fine. But updating or deleting do not. When i trÑ to
update an existing entry, this error occures
Nov 16 10:17:28 - ERROR - Error while adding entry
cn=wifimon,dc=localhost,dc=localdomain in directory
:javax.naming.NameAlreadyBoundException: [LDAP: error code 68 - Entry
Already Exists]; remaining name 'cn=wifimon'
Nov 16 10:17:28 - ERROR - Error while synchronizing ID
cn=wifimon,dc=localhost,dc=localdomain: java.lang.Exception: Technical
problem while applying modifications to the destination
i think it is just a configuration issue, can anybody help me to correct
this.
This is my lsc.xml
<?xml version="1.0" ?> <lsc xmlns="
http://lsc-project.org/XSD/lsc-core-2.1.xsd" revision="1">
<connections>
<ldapConnection>
<name>openldap</name>
<url>ldap://localhost:389/dc=localhost,dc=localdomain</url>
<username>cn=Manager,dc=localhost,dc=localdomain</username>
<password>***</password>
<authentication>SIMPLE</authentication>
<referral>IGNORE</referral>
<derefAliases>NEVER</derefAliases>
<version>VERSION_3</version>
<pageSize>-1</pageSize>
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<tlsActivated>false</tlsActivated>
</ldapConnection>
<databaseConnection>
<name>jdbc-dst-conn</name>
<url>jdbc:postgresql://127.0.0.1:5432/lsc</url>
<username>lsc</username>
<password>***</password>
<driver>org.postgresql.Driver</driver>
</databaseConnection>
</connections>
<tasks>
<task>
<name>People</name>
<bean>org.lsc.beans.SimpleBean</bean>
<databaseSourceService>
<name>postgresql-src-service</name>
<connection reference="jdbc-dst-conn" />
<requestNameForList>getInetOrgPersonList</requestNameForList>
<requestNameForObject>getInetOrgPerson</requestNameForObject>
<requestNameForNextId>getNextInetOrgPersonId</requestNameForNextId>
<requestNameForClean>getInetOrgPersonClean</requestNameForClean>
</databaseSourceService>
<ldapDestinationService>
<name>ldap-dst-service</name>
<connection reference="openldap" />
<baseDn>dc=localhost,dc=localdomain</baseDn>
<pivotAttributes>
<string>uid</string>
</pivotAttributes>
<fetchedAttributes>
<string>cn</string>
<string>givenName</string>
<string>mail</string>
<string>objectClass</string>
<string>uid</string>
<string>sn</string>
<string>telephoneNumber</string>
<string>departmentNumber</string>
<string>userPassword</string>
</fetchedAttributes>
<getAllFilter>(objectClass=inetOrgPerson)</getAllFilter>
<getOneFilter>(&(objectClass=inetOrgPerson)(uid={uid}))</getOneFilter>
</ldapDestinationService>
<propertiesBasedSyncOptions>
<mainIdentifier>"cn=" + srcBean.getDatasetFirstValueById("cn") +
",dc=localhost,dc=localdomain"</mainIdentifier>
<defaultDelimiter>;</defaultDelimiter>
<defaultPolicy>FORCE</defaultPolicy>
<conditions>
<create>true</create>
<update>true</update>
<delete>true</delete>
<changeId>true</changeId>
</conditions>
<dataset>
<!-- uid = userPrincipalName = uid + domain -->
<name>uid</name>
<policy>FORCE</policy>
<forceValues>
<string>srcBean.getDatasetFirstValueById("uid") + "@" +
srcBean.getDatasetFirstValueById("domain")</string>
</forceValues>
</dataset>
<dataset>
<!-- userPassword = {SASL} + uid + domain -->
<name>userPassword</name>
<policy>FORCE</policy>
<forceValues>
<string>"{SASL}" +
srcBean.getDatasetFirstValueById("uid") + "@" +
srcBean.getDatasetFirstValueById("domain")</string>
</forceValues>
</dataset>
<dataset>
<name>objectClass</name>
<policy>FORCE</policy>
<forceValues>
<string>"inetOrgPerson"</string>
<string>"organizationalPerson"</string>
<string>"person"</string>
<string>"top"</string>
</forceValues>
</dataset>
</propertiesBasedSyncOptions>
</task>
</tasks>
</lsc>
I configured my server according to official documentation. Creating
entries in ldap works fine. But updating or deleting do not. When i trÑ to
update an existing entry, this error occures
Nov 16 10:17:28 - ERROR - Error while adding entry
cn=wifimon,dc=localhost,dc=localdomain in directory
:javax.naming.NameAlreadyBoundException: [LDAP: error code 68 - Entry
Already Exists]; remaining name 'cn=wifimon'
Nov 16 10:17:28 - ERROR - Error while synchronizing ID
cn=wifimon,dc=localhost,dc=localdomain: java.lang.Exception: Technical
problem while applying modifications to the destination
i think it is just a configuration issue, can anybody help me to correct
this.
This is my lsc.xml
<?xml version="1.0" ?> <lsc xmlns="
http://lsc-project.org/XSD/lsc-core-2.1.xsd" revision="1">
<connections>
<ldapConnection>
<name>openldap</name>
<url>ldap://localhost:389/dc=localhost,dc=localdomain</url>
<username>cn=Manager,dc=localhost,dc=localdomain</username>
<password>***</password>
<authentication>SIMPLE</authentication>
<referral>IGNORE</referral>
<derefAliases>NEVER</derefAliases>
<version>VERSION_3</version>
<pageSize>-1</pageSize>
<factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
<tlsActivated>false</tlsActivated>
</ldapConnection>
<databaseConnection>
<name>jdbc-dst-conn</name>
<url>jdbc:postgresql://127.0.0.1:5432/lsc</url>
<username>lsc</username>
<password>***</password>
<driver>org.postgresql.Driver</driver>
</databaseConnection>
</connections>
<tasks>
<task>
<name>People</name>
<bean>org.lsc.beans.SimpleBean</bean>
<databaseSourceService>
<name>postgresql-src-service</name>
<connection reference="jdbc-dst-conn" />
<requestNameForList>getInetOrgPersonList</requestNameForList>
<requestNameForObject>getInetOrgPerson</requestNameForObject>
<requestNameForNextId>getNextInetOrgPersonId</requestNameForNextId>
<requestNameForClean>getInetOrgPersonClean</requestNameForClean>
</databaseSourceService>
<ldapDestinationService>
<name>ldap-dst-service</name>
<connection reference="openldap" />
<baseDn>dc=localhost,dc=localdomain</baseDn>
<pivotAttributes>
<string>uid</string>
</pivotAttributes>
<fetchedAttributes>
<string>cn</string>
<string>givenName</string>
<string>mail</string>
<string>objectClass</string>
<string>uid</string>
<string>sn</string>
<string>telephoneNumber</string>
<string>departmentNumber</string>
<string>userPassword</string>
</fetchedAttributes>
<getAllFilter>(objectClass=inetOrgPerson)</getAllFilter>
<getOneFilter>(&(objectClass=inetOrgPerson)(uid={uid}))</getOneFilter>
</ldapDestinationService>
<propertiesBasedSyncOptions>
<mainIdentifier>"cn=" + srcBean.getDatasetFirstValueById("cn") +
",dc=localhost,dc=localdomain"</mainIdentifier>
<defaultDelimiter>;</defaultDelimiter>
<defaultPolicy>FORCE</defaultPolicy>
<conditions>
<create>true</create>
<update>true</update>
<delete>true</delete>
<changeId>true</changeId>
</conditions>
<dataset>
<!-- uid = userPrincipalName = uid + domain -->
<name>uid</name>
<policy>FORCE</policy>
<forceValues>
<string>srcBean.getDatasetFirstValueById("uid") + "@" +
srcBean.getDatasetFirstValueById("domain")</string>
</forceValues>
</dataset>
<dataset>
<!-- userPassword = {SASL} + uid + domain -->
<name>userPassword</name>
<policy>FORCE</policy>
<forceValues>
<string>"{SASL}" +
srcBean.getDatasetFirstValueById("uid") + "@" +
srcBean.getDatasetFirstValueById("domain")</string>
</forceValues>
</dataset>
<dataset>
<name>objectClass</name>
<policy>FORCE</policy>
<forceValues>
<string>"inetOrgPerson"</string>
<string>"organizationalPerson"</string>
<string>"person"</string>
<string>"top"</string>
</forceValues>
</dataset>
</propertiesBasedSyncOptions>
</task>
</tasks>
</lsc>