Hey All,

I am working to setup LCS (latest APT Version) to sync my AD Domain users and 
groups with OpenLDAP. I have the following lsc.xml:

[code]

<?xml version=”1.0″ ?>
<lsc xmlns=”http://lsc-project.org/XSD/lsc-core-2.0.xsd&#8221; revision=”0″>
  <connections>
    <ldapConnection>
      <name>dst-ldap</name>
      <url>10.210.14.79:389/dc=jss,dc=cardinalhealth,dc=local</url>
      <username>cn=admin,dc=jss,dc=cardinalhealth,dc=local/username>
      <password>Cardinal1</password>
      <authentication>SIMPLE</authentication>
      <referral>IGNORE</referral>
      <derefAliases>NEVER</derefAliases>
      <version>VERSION_3</version>
      <pageSize>1000</pageSize>
      <factory>com.sun.jndi.ldap.LdapCtxFactory</factory>
      <tlsActivated>false</tlsActivated>
    </ldapConnection>
   <ldapConnection>
      <name>src-ad</name>
      <url>ldap-corp.cardinalhealth.net:389/dc=cardinalhealth,dc=net</url>
      <username>cardinalhealth\edward.shorrock</username>
      <password>Vbn37190</password>
      <authentication>SIMPLE</authentication>
      <referral>IGNORE</referral>
      <derefAliases>NEVER</derefAliases>
      <version>VERSION_3</version>
      <pageSize>1000</pageSize>
    </ldapConnection>
  </connections>
  <audits/>
  <tasks>
    <task>
      <name>MySyncTask</name>
      <bean>org.lsc.beans.SimpleBean</bean>
      <ldapSourceService>
        <name>MySyncTask-src</name>
        <connection reference=”src-ad”/>
        <baseDn>ou=Users,ou=Users and 
Groups,dc=jss,dc=cardinalhealth,dc=local</baseDn>
        <pivotAttributes>
          <string>userPrincipalName</string>
        </pivotAttributes>
        <fetchedAttributes>
          <string>cn</string>
          <string>sn</string>
          <string>givenName</string>
          <string>mail</string>
          <string>sAMAccountName</string>
          <string>userPrincipalName</string>
        </fetchedAttributes>
        <getAllFilter>(&amp;(mail=*)(objectClass=user))</getAllFilter>
        
<getOneFilter>(&amp;(userPrincipalName={userPrincipalName})(objectClass=user))</getOneFilter>
        
<cleanFilter>(&amp;(userPrincipalName={userPrincipalName})(objectClass=user))</cleanFilter>
        <interval>6</interval>
      </ldapSourceService>
      <ldapDestinationService>
        <name>MySyncTask-dst</name>
        <connection reference=”dst-ldap”/>
        <baseDn>ou=Users,ou=Users and 
Groups,dc=jss,dc=cardinalhealth,dc=local</baseDn>
        <pivotAttributes>
          <string>mail</string>
        </pivotAttributes>
        <fetchedAttributes>
          <string>cn</string>
          <string>sn</string>
          <string>objectClass</string>
          <string>givenName</string>
          <string>mail</string>
          <string>uid</string>
        </fetchedAttributes>
        <getAllFilter>(objectClass=inetOrgPerson)</getAllFilter>
        
<getOneFilter>(&amp;(objectClass=inetOrgPerson)(mail={mail}))</getOneFilter>
      </ldapDestinationService>
      <propertiesBasedSyncOptions>
        <mainIdentifier>”mail=” + srcBean.getDatasetFirstValueById(“mail”) + 
“,ou=mydomain,DC=mydomain,DC=co,DC=uk”</mainIdentifier>
        <defaultDelimiter>;</defaultDelimiter>
        <defaultPolicy>FORCE</defaultPolicy>
        <dataset>
          <name>objectClass</name>
          <policy>FORCE</policy>
          <forceValues>
            <string>”inetOrgPerson”</string>
            <string>”organizationalPerson”</string>
            <string>”person”</string>
            <string>”top”</string>
          </forceValues>
          <delimiter>,</delimiter>
        </dataset>
        <dataset>
          <name>uid</name>
          <policy>FORCE</policy>
          <forceValues>
            <string>
              srcBean.getDatasetFirstValueById(“sAMAccountName”)</string>
          </forceValues>
        </dataset>
        <dataset>
          <name>default</name>
          <policy>FORCE</policy>
        </dataset>
      </propertiesBasedSyncOptions>
    </task>
    <task>
      <name>GroupSyncTask</name>
      <bean>org.lsc.beans.SimpleBean</bean>
      <ldapSourceService>
        <name>GroupSyncTask-src</name>
        <connection reference=”src-ad”/>
        <baseDn>ou=Groups,ou=Users and 
Groups,dc=jss,dc=cardinalhealth,dc=local</baseDn>
        <pivotAttributes>
          <string>cn</string>
        </pivotAttributes>
        <fetchedAttributes>
          <string>cn</string>
          <string>member</string>
        </fetchedAttributes>
        
<getAllFilter>(&amp;(objectClass=group)(member=*)(|(cn=-sec-Jira*)(cn=-sec-Confluence*)))</getAllFilter>
        <getOneFilter>(&amp;(objectClass=group)(cn={cn}))</getOneFilter>
        <cleanFilter>(&amp;(objectClass=group)(cn={cn}))</cleanFilter>
        <interval>100</interval>
      </ldapSourceService>
      <ldapDestinationService>
        <name>GroupSyncTask-dst</name>
        <connection reference=”dst-ldap”/>
        <baseDn>ou=Groups,ou=Users and 
Groups,dc=jss,dc=cardinalhealth,dc=local</baseDn>
        <pivotAttributes>
          <string>cn</string>
        </pivotAttributes>
        <fetchedAttributes>
          <string>cn</string>
          <string>member</string>
          <string>objectClass</string>
        </fetchedAttributes>
        <getAllFilter>(objectClass=groupOfNames)</getAllFilter>
        <getOneFilter>(&amp;(objectClass=groupOfNames)(cn={cn}))</getOneFilter>
      </ldapDestinationService>
      <propertiesBasedSyncOptions>
        <mainIdentifier>”cn=” + srcBean.getDatasetValuesById(“cn”)+ 
“,ou=groups,DC=mydomain,DC=co,DC=uk”</mainIdentifier>
        <defaultDelimiter>;</defaultDelimiter>
        <defaultPolicy>FORCE</defaultPolicy>
        <dataset>
          <name>objectClass</name>
          <policy>FORCE</policy>
          <forceValues>
            <string>”groupOfNames”</string>
            <string>”top”</string>
          </forceValues>
          <delimiter>$</delimiter>
        </dataset>
        <dataset>
          <name>default</name>
          <policy>FORCE</policy>
        </dataset>
      </propertiesBasedSyncOptions>
    </task>
  </tasks>
</lsc>
[/code]

I then attempted a dry run with the following command:

[code] /usr/bin/lsc -f /etc/lsc/ad2openldap/ -s all -c all –n [/code]

Seems I have gotten something wrong here though. I get the following error:

[code]

22:52:19,820 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Could 
NOT find resource [logback-test.xml]
22:52:19,820 |-INFO in ch.qos.logback.classic.LoggerContext[default] - Found 
resource [logback.xml] at [file:/etc/lsc/logback.xml]
22:52:19,820 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource 
[logback.xml] occurs multiple times on the classpath.
22:52:19,820 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource 
[logback.xml] occurs at [file:/etc/lsc/logback.xml]
22:52:19,820 |-WARN in ch.qos.logback.classic.LoggerContext[default] - Resource 
[logback.xml] occurs at [jar:file:/usr/lib/lsc/lsc-core-2.1.4.jar!/logback.xml]
22:52:19,853 |-INFO in ch.qos.logback.classic.joran.action.ConfigurationAction 
- debug attribute not set
22:52:19,855 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About 
to instantiate appender of type [ch.qos.logback.core.ConsoleAppender]
22:52:19,857 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming 
appender as [CONSOLE]
22:52:19,870 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [encoder] on top of the object stack.
22:52:19,876 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [layout] on top of the object stack.
22:52:19,902 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About 
to instantiate appender of type 
[ch.qos.logback.core.rolling.RollingFileAppender]
22:52:19,903 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming 
appender as [LSC]
22:52:19,905 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [layout] on top of the object stack.
22:52:19,906 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LSC] - 
This appender no longer admits a layout as a sub-component, set an encoder 
instead.
22:52:19,906 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LSC] - 
To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
22:52:19,906 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LSC] - 
See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
22:52:19,908 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [filter] on top of the object stack.
22:52:19,913 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [rollingPolicy] on top of the object stack.
22:52:19,918 |-INFO in 
ch.qos.logback.core.rolling.FixedWindowRollingPolicy@73035e27 - Will use gz 
compression
22:52:19,919 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [triggeringPolicy] on top of the object stack.
22:52:19,921 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[LSC] - 
Active log file name: /var/log/lsc/lsc.log
22:52:19,921 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[LSC] - 
File property is set to [/var/log/lsc/lsc.log]
22:52:19,922 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About 
to instantiate appender of type [ch.qos.logback.core.FileAppender]
22:52:19,922 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming 
appender as [LSC_STATUS]
22:52:19,922 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [layout] on top of the object stack.
22:52:19,922 |-WARN in ch.qos.logback.core.FileAppender[LSC_STATUS] - This 
appender no longer admits a layout as a sub-component, set an encoder instead.
22:52:19,922 |-WARN in ch.qos.logback.core.FileAppender[LSC_STATUS] - To ensure 
compatibility, wrapping your layout in LayoutWrappingEncoder.
22:52:19,922 |-WARN in ch.qos.logback.core.FileAppender[LSC_STATUS] - See also 
http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
22:52:19,922 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [filter] on top of the object stack.
22:52:19,922 |-INFO in ch.qos.logback.core.FileAppender[LSC_STATUS] - File 
property is set to [/var/log/lsc/lsc.status]
22:52:19,922 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - About 
to instantiate appender of type 
[ch.qos.logback.core.rolling.RollingFileAppender]
22:52:19,923 |-INFO in ch.qos.logback.core.joran.action.AppenderAction - Naming 
appender as [LDIF]
22:52:19,923 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [layout] on top of the object stack.
22:52:19,923 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LDIF] - 
This appender no longer admits a layout as a sub-component, set an encoder 
instead.
22:52:19,923 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LDIF] - 
To ensure compatibility, wrapping your layout in LayoutWrappingEncoder.
22:52:19,923 |-WARN in ch.qos.logback.core.rolling.RollingFileAppender[LDIF] - 
See also http://logback.qos.ch/codes.html#layoutInsteadOfEncoder for details
22:52:19,923 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [filter] on top of the object stack.
22:52:19,923 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [rollingPolicy] on top of the object stack.
22:52:19,923 |-INFO in 
ch.qos.logback.core.rolling.FixedWindowRollingPolicy@64c64813 - Will use gz 
compression
22:52:19,923 |-INFO in ch.qos.logback.core.joran.action.NestedComplexPropertyIA 
- Pushing component [triggeringPolicy] on top of the object stack.
22:52:19,924 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[LDIF] - 
Active log file name: /var/log/lsc/lsc.ldif
22:52:19,924 |-INFO in ch.qos.logback.core.rolling.RollingFileAppender[LDIF] - 
File property is set to [/var/log/lsc/lsc.ldif]
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting level of logger [org.lsc] to INFO
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting additivity of logger [org.lsc] to true
22:52:19,924 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [LSC] to Logger[org.lsc]
22:52:19,924 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [LSC_STATUS] to Logger[org.lsc]
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting level of logger [lsc] to INFO
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting additivity of logger [lsc] to true
22:52:19,924 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [LDIF] to Logger[lsc]
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting level of logger [communicationLogger] to WARN
22:52:19,924 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting additivity of logger [communicationLogger] to true
22:52:19,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [CONSOLE] to Logger[communicationLogger]
22:52:19,925 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting level of logger [org.apache] to WARN
22:52:19,925 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting additivity of logger [org.apache] to true
22:52:19,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [CONSOLE] to Logger[org.apache]
22:52:19,925 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting level of logger [poolLogger] to WARN
22:52:19,925 |-INFO in ch.qos.logback.classic.joran.action.LoggerAction - 
Setting additivity of logger [poolLogger] to true
22:52:19,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [CONSOLE] to Logger[poolLogger]
22:52:19,925 |-INFO in ch.qos.logback.classic.joran.action.RootLoggerAction - 
Setting level of ROOT logger to INFO
22:52:19,925 |-INFO in ch.qos.logback.core.joran.action.AppenderRefAction - 
Attaching appender named [CONSOLE] to Logger[ROOT]

Sep 20 22:52:20 - INFO  - Reflections took 43 ms to scan 1 urls, producing 56 
keys and 117 values
Sep 20 22:52:20 - ERROR - Unable to load configuration 
(org.lsc.exception.LscConfigurationException: Configuration exception: null)
org.lsc.exception.LscConfigurationException: Configuration exception: null
                at 
org.lsc.configuration.JaxbXmlConfigurationHelper.getConfiguration(JaxbXmlConfigurationHelper.java:162)
 ~[lsc-core-2.1.4.jar:na]
                at org.lsc.Configuration.setUp(Configuration.java:482) 
[lsc-core-2.1.4.jar:na]
                at org.lsc.Configuration.setUp(Configuration.java:456) 
[lsc-core-2.1.4.jar:na]
                at org.lsc.Launcher.run(Launcher.java:205) 
[lsc-core-2.1.4.jar:na]
                at org.lsc.Launcher.launch(Launcher.java:158) 
[lsc-core-2.1.4.jar:na]
                at org.lsc.Launcher.main(Launcher.java:141) 
[lsc-core-2.1.4.jar:na]
Caused by: javax.xml.bind.UnmarshalException: null
                at 
javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(AbstractUnmarshallerImpl.java:335)
 ~[na:1.8.0_131]
                at 
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(UnmarshallerImpl.java:563)
 ~[na:1.8.0_131]
                at 
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:249)
 ~[na:1.8.0_131]
                at 
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:214)
 ~[na:1.8.0_131]
                at 
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:157)
 ~[na:1.8.0_131]
                at 
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:162)
 ~[na:1.8.0_131]
                at 
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:171)
 ~[na:1.8.0_131]
                at 
javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:189)
 ~[na:1.8.0_131]
                at 
org.lsc.configuration.JaxbXmlConfigurationHelper.getConfiguration(JaxbXmlConfigurationHelper.java:160)
 ~[lsc-core-2.1.4.jar:na]
                ... 5 common frames omitted
Caused by: org.xml.sax.SAXParseException: The value following "version" in the 
XML declaration must be a quoted string.
                at 
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanPseudoAttribute(XMLScanner.java:623)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLScanner.scanXMLDeclOrTextDecl(XMLScanner.java:458)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanXMLDeclOrTextDecl(XMLDocumentFragmentScannerImpl.java:948)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$XMLDeclDriver.next(XMLDocumentScannerImpl.java:770)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:443)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:841)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:770)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) 
~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
 ~[na:1.8.0_131]
                at 
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
 ~[na:1.8.0_131]
                at 
com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:243)
 ~[na:1.8.0_131]
                ... 11 common frames omitted
[/code]

I googled and googled but I cannot find much on this. Any help anyone can offer 
would be MUCH appreciated!

Thanks!
Ed S.


_________________________________________________

This message is for the designated recipient only and may contain privileged, 
proprietary
or otherwise private information. If you have received it in error, please 
notify the sender
immediately and delete the original. Any other use of the email by you is 
prohibited.

Dansk - Deutsch - Espanol - Francais - Italiano - Japanese - Nederlands - Norsk 
- Portuguese - Chinese
Svenska: 
http://www.cardinalhealth.com/en/support/terms-and-conditions-english.html
_______________________________________________________________
Ldap Synchronization Connector (LSC) - http://lsc-project.org

lsc-users mailing list
[email protected]
https://lists.lsc-project.org/cgi-bin/mailman/listinfo/lsc-users

Reply via email to