Hi,
I test LSC for sync BDD Oracle to OpenLDAP.
I have this error when I use : ant -Dsynchronize.parameters="-f $PWD/etc -s
all" lsc::synchronize
[java] 2195876 - ERROR - Error while modifying entry uid=e20811,ou=people in
directory : javax.naming.directory.SchemaViolationException: [LDAP: error code
65 - attribute 'mailLocalAddress' not
allowed]; remaining name 'uid=e20811,ou=people'
[java] 2195876 - ERROR - Erreur rencontr?e sur l'identifiant
uid=e20811,ou=people:
[java]
And, i don't know how to complete my project for others "objectClass"
objectClass for ou=people on my OpenLDAP :
objectClass top
objectClass organizationalPerson
objectClass inetOrgPerson
objectClassposixAccount
objectClasssambaSamAccount
objectClasseduPerson
objectClasssupannPerson
objectClassradiusprofile
objectClassinetLocalMailRecipient
objectClasssambaGroupMapping
objectClass
Thanks for helps,
Regards,
Laurent
*************************************************
Table From BDD
*************************************************
DESC V_OU_PEOPLE_TEST
Name Type
------------------------------------ --------------------------------
TYPE_INDIVIDU VARCHAR2(1)
cn VARCHAR2(60)
gidNumber NUMBER
homeDirectory VARCHAR2(70)
objectClass[0] CHAR(3)
objectClass[1] CHAR(20)
objectClass[2] CHAR(13)
objectClass[3] CHAR(12)
objectClass[4] CHAR(15)
objectClass[5] CHAR(9)
objectClass[6] CHAR(12)
objectClass[7] CHAR(13)
objectClass[8] CHAR(22)
objectClass[9] CHAR(17)
objectClass[10] CHAR(11)
sambaGroupType CHAR(1)
sambaSID VARCHAR2(81)
sn VARCHAR2(40)
supannListeRouge CHAR(5)
supannOrganisme VARCHAR2(40)
uid VARCHAR2(40)
uidNumber NUMBER(9)
displayName VARCHAR2(60)
eduPersonAffiliation VARCHAR2(20)
eduPersonPrimaryAffiliation VARCHAR2(20)
eduPersonPrincipalName VARCHAR2(100)
facsimileTelephoneNumber VARCHAR2(11)
gecos VARCHAR2(60)
givenName VARCHAR2(20)
initials VARCHAR2(100)
loginShell CHAR(9)
mail VARCHAR2(100)
mailHost VARCHAR2(22)
mailLocalAddress VARCHAR2(100)
mailRoutingAddress VARCHAR2(100)
mobile VARCHAR2(11)
postalAddress VARCHAR2(256)
preferredLanguage CHAR(2)
radiusTunnelMediumType CHAR(8)
radiusTunnelPrivateGroupId VARCHAR2(3)
radiusTunnelType CHAR(4)
sambaAcctFlags CHAR(13)
sambaLMPassword VARCHAR2(40)
sambaNTPassword VARCHAR2(40)
sambaPasswordHistory CHAR(56)
sambaPrimaryGroupSID CHAR(44)
sambaPwdCanChange CHAR(10)
sambaPwdLastSet CHAR(10)
sambaPwdMustChange CHAR(10)
supannAffectation[0] VARCHAR2(25)
supannAffectation[1] VARCHAR2(25)
supannAffectation[2] VARCHAR2(25)
supannAliasLogin VARCHAR2(40)
supannRole VARCHAR2(20)
supannEmpId VARCHAR2(40)
supannEtuId NUMBER
supannCivilite VARCHAR2(5)
supannCodeINE VARCHAR2(11)
supannAutreTelephone[0] VARCHAR2(11)
supannAutreTelephone[1] VARCHAR2(11)
telephoneNumber VARCHAR2(11)
uboAdresseAnu VARCHAR2(256)
uboAnneeDernIns VARCHAR2(4)
uboCmp VARCHAR2(3)
uboDateCreation VARCHAR2(8)
uboDateModif CHAR()
uboDateFinCompte NUMBER
uboDateNaissance VARCHAR2(10)
uboEtatInscr VARCHAR2(1)
uboFonction[0] VARCHAR2(20)
uboFonction[1] VARCHAR2(20)
uboInscripBu VARCHAR2(3)
uboLibelleCmp VARCHAR2(40)
uboMailRejet CHAR(6)
uboMdpInit VARCHAR2(40)
uboVerrou CHAR(2)
userPassword VARCHAR2(40)
departmentNumber[0] VARCHAR2(10)
departmentNumber[3] VARCHAR2(1)
departmentNumber[4] VARCHAR2(3)
departmentNumber[5] VARCHAR2(4)
departmentNumber[6] VARCHAR2(5)
departmentNumber[1] VARCHAR2(10)
departmentNumber[7] VARCHAR2(1)
departmentNumber[8] VARCHAR2(3)
departmentNumber[9] VARCHAR2(4)
departmentNumber[10] VARCHAR2(5)
departmentNumber[2] VARCHAR2(10)
departmentNumber[11] VARCHAR2(1)
departmentNumber[12] VARCHAR2(3)
departmentNumber[13] VARCHAR2(4)
departmentNumber[14] VARCHAR2(5)
uboAffectPrincAnt VARCHAR2(10)
uboAffectPrincAnt[0] VARCHAR2(1)
uboAffectPrincAnt[1] VARCHAR2(3)
uboAffectPrincAnt[2] VARCHAR2(4)
uboAffectPrincAnt[3] VARCHAR2(5)
97 rows selected
*************************************************
ou=people on OpenLDAP
*************************************************
dn [ Modify DN ] uid=____________,ou=people,dc=______________ ,dc=fr
cn
gidNumber
homeDirectory
objectClasstop
objectClassorganizationalPerson
objectClassinetOrgPerson
objectClassposixAccount
objectClasssambaSamAccount
objectClasseduPerson
objectClasssupannPerson
objectClassradiusprofile
objectClassinetLocalMailRecipient
objectClasssambaGroupMapping
objectClassuboPersonne
sambaGroup
sambaSID
sn
supannListeRouge
supannOrganisme
uide
uidNumber
audio
businessCategory
carLicense
cn
departmentNumber
description
destinationIndicator
dialupAccess
displayNameMarie
eduPersonAffiliationstudent
eduPersonEntitlement
eduPersonNickname
eduPersonOrgDN
eduPersonOrgUnitDN
eduPersonPrimaryAffiliationstudent
eduPersonPrimaryOrgUnitDN
eduPersonPrincipalNamee
eduPersonScopedAffiliation
employeeNumber
employeeType
facsimileTelephoneNumber
gecos
givenName
homePhone
homePostalAddress
initials
internationaliSDNNumber
jpegPhoto
l
labeledURI
loginShell
mail
mailHost
mailLocalAddress
mailRoutingAddresse
manager
mobile
o
ou
pager
photo
physicalDeliveryOfficeName
postOfficeBox
postalAddress
postalCode
preferredDeliveryMethod
preferredLanguagefr
radiusArapFeatures
radiusArapSecurity
radiusArapZoneAccess
radiusAuthType
radiusCallbackId
radiusCallbackNumber
radiusCalledStationId
radiusCallingStationId
radiusCheckItem
radiusClass
radiusClientIPAddress
radiusExpiration
radiusFilterId
radiusFramedAppleTalkLink
radiusFramedAppleTalkNetwork
radiusFramedAppleTalkZone
radiusFramedCompression
radiusFramedIPAddress
radiusFramedIPNetmask
radiusFramedIPXNetwork
radiusFramedMTU
radiusFramedProtocol
radiusFramedRoute
radiusFramedRouting
radiusGroupName
radiusHint
radiusHuntgroupName
radiusIdleTimeout
radiusLoginIPHost
radiusLoginLATGroup
radiusLoginLATNode
radiusLoginLATPort
radiusLoginLATService
radiusLoginService
radiusLoginTCPPort
radiusLoginTime
radiusNASIpAddress
radiusPasswordRetry
radiusPortLimit
radiusProfileDn
radiusPrompt
radiusProxyToRealm
radiusRealm
radiusReplicateToRealm
radiusReplyItem
radiusReplyMessage
radiusServiceType
radiusSessionTimeout
radiusSimultaneousUse
radiusStripUserName
radiusTerminationAction
radiusTunnelAssignmentId
radiusTunnelClientEndpoint
radiusTunnelMediumType
radiusTunnelPassword
radiusTunnelPreference
radiusTunnelPrivate
radiusTunnelServer
radiusTunnelType
radiusUserCategory
radiusVSA
registeredAddress
roomNumber
sambaAcctFlags
sambaBadPasswordCount
sambaBadPasswordTime
sambaDomainName
sambaHomeDrive
sambaHomePath
sambaKickoffTime
sambaLMPassword
sambaLogoffTime
sambaLogonHours
sambaLogonScript
sambaLogonTime
sambaMungedDial
sambaNTPassword
sambaPasswordHistory
sambaPrimaryGroup
sambaProfilePath
sambaPwdCanChange
sambaPwdLastSet
sambaPwdMustChange
sambaSIDList
sambaUserWorkstations
secretary
seeAlso
st
street
supannAffectationAgregation
supannAliasLogine
supannAutreTelephone
supannCiviliteMle
supannCodeINE
supannEmpId
supannEtuId
supannParrainDN
supannRolestudent
telephoneNumber.
teletexTerminalIdentifier
telexNumber
title
uboAdresse
uboAffectPrincAnt
uboAnneeDernIns
uboApplication
uboCmp
uboDateCreation
uboDateFinCompte
uboDateModif
uboDateNaissance
uboDateOuvertureCompte
uboDateSupp
uboDateVerrou
uboEtatInscrE
uboFonction
uboInscripBuOUI
uboLibelleCmp
uboMailRejetREJECT
uboMdpInit
uboVerrouON
uboVerrouMotif
uide20200166
userCertificate
userPKCS12
userPassword
userSMIMECertificate
x121Address
x500uniqueIdentifier
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.lsc-project.org/pipermail/lsc-users/attachments/20091106/4d3824c7/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: InetOrgPerson.xml
Type: application/xml
Size: 1726 bytes
Desc: not available
URL:
<http://lists.lsc-project.org/pipermail/lsc-users/attachments/20091106/4d3824c7/attachment-0001.xml>
-------------- next part --------------
# _____________________________________________________________________________
#
# Fichier de configuration de LSC : lsc.properties
#
# Verstion : 1.0 Du : 05/11/2009
# _____________________________________________________________________________
#
/home/berlivet/Documents/LDAP/LSC/2009_11_02_v2/lsc-sample-1.1.1/etc/lsc.properties
#Reset the database properties
#Mon Nov 02 17:27:23 CET 2009
# _____________________________________________________________________________
#
# Source database
# _____________________________________________________________________________
# This section can safely be deleted if you are not using db2ldap
synchronization
# Java class name of the JDBC driver to use for this database
src.database.driver = oracle.jdbc.driver.OracleDriver
# Connection URL. This must include the database name
src.database.url = jdbc:oracle:thin:@_________________.fr:1521:____________
# User name to connect to the database with
src.database.username = username__________
# Password to connect to the database with
src.database.password = password___________
# _____________________________________________________________________________
#
# Destination LDAP directory
# _____________________________________________________________________________
# This section is mandatory since all synchronizations currently go to an LDAP
directory.
# Connection URL. This must include a valid LDAP context.
dst.java.naming.provider.url = ldap://annuairetest:389/dc=______________,dc=fr
# Authentication type."none" causes an anonymous bind. "simple" performs a
standard bind.
dst.java.naming.security.authentication = simple
# Bind DN to use if authentication type is "simple"
dst.java.naming.security.principal = cn=admin,dc=__________,dc=fr
# Bind password to use if authentication type is "simple"
dst.java.naming.security.credentials = password___________
# Follow referrals in searches? Allowed values are "ignore", "follow".
dst.java.naming.referral = ignore
# Dereference aliases in searches? Allowed values are "never", "search",
"find", "always"
dst.java.naming.ldap.derefAliases = never
# Standard properties. These should not be changed.
dst.java.naming.ldap.version = 3
dst.java.naming.factory.initial = com.sun.jndi.ldap.LdapCtxFactory
# _____________________________________________________________________________
#
# Tasks configuration
# _____________________________________________________________________________
# This section defines the synchronization tasks for LSC.
dn.real_root = dc=______________,dc=fr
# List of defined tasks, seperated by commas
lsc.tasks = oracle_2_ldap
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Task "oracle_2_ldap"
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Task type for task "MySyncTask" (ldap2ldap or db2ldap)
lsc.tasks.oracle_2_ldap.type = db2ldap
# -----------------------------------------------------------------------------
# Classe java et param?tres pour lire les donn?es SOURCE
# -----------------------------------------------------------------------------
# Java class name .............................................................
# Java class name for the service to read objects from the source
# Either "org.lsc.jndi.SimpleJndiSrcService" for ldap2ldap, or
# "org.lsc.service.<objectName>JdbcService" for db2ldap
lsc.tasks.oracle_2_ldap.srcService = org.lsc.service.InetOrgPersonJDBCService
# SimpleJndiSrcService parameters .............................................
# The parameters in this section only apply to the SimpleJndiSrcService
# This section can safely be deleted if you are not using ldap2ldap
synchronization.
# -----------------------------------------------------------------------------
# Classe java et param?tres pour ?crire les donn?es DESTINATION
# -----------------------------------------------------------------------------
# Java class name .............................................................
# Java class name for the service to read objects from the source ?????
# Usually "org.lsc.jndi.SimpleJndiDstService".
lsc.tasks.oracle_2_ldap.dstService = org.lsc.jndi.SimpleJndiDstService
# SimpleJndiDstService parameters .............................................
# The parameters in this section only apply to the SimpleJndiDstService
# Base DN for searches in the directory
lsc.tasks.oracle_2_ldap.dstService.baseDn = ou=people
# Filter to list all entries to synchronize
# lsc.tasks.FirstTask.dstService.filterAll=(&(sn=*)(objectClass=inetOrgPerson))
# lsc.tasks.oracle_2_ldap.dstService.filterAll = (objectClass=inetOrgPerson)
lsc.tasks.oracle_2_ldap.dstService.filterAll =
(&(uid=*)(objectClass=inetOrgPerson))
# Attributes to read from all entries used to match objects between source and
destination
# lsc.tasks.oracle_2_ldap.dstService.pivotAttrs = employeeNumber!!!!!!!!!!!!!!!
# lsc.tasks.oracle_2_ldap.dstService.pivotAttrs = employeeNumber
lsc.tasks.oracle_2_ldap.dstService.pivotAttrs = uid
# Filter to read one entry to synchronize, based on pivotAttrs above
# This filter may contain one or several pivotAttrs defined above, like
"{attributeName}" !!!!!!!!!!!
# lsc.tasks.oracle_2_ldap.dstService.filterId =
(&(objectClass=inetOrgPerson)(employeeNumber={employeeNumber}))
# lsc.tasks.FirstTask.dstService.filterId=(sn={sn})
lsc.tasks.oracle_2_ldap.dstService.filterId =
(&(objectClass=inetOrgPerson)(uid={uid}))
# Attributes to read from each entry used to read and write data
#lsc.tasks.MySyncTask.dstService.attrs = description cn sn userPassword
objectClass
# lsc.tasks.oracle_2_ldap.dstService.attrs = uid cn sn givenName mail
objectClass !!!!!!!!!!!!!!!!!!!!!!
lsc.tasks.oracle_2_ldap.dstService.attrs = uid cn sn givenName mail objectClass
facsimileTelephoneNumber postalAddress userPassword telephoneNumber displayName
preferredLanguage initials mobile
# -----------------------------------------------------------------------------
# Construction du DN pour les nouvelles entr?es
# -----------------------------------------------------------------------------
# Construct a DN for new entries in the destination directory
# This is a JavaScript expression, and can access any utility functions and the
srcBean.
# It should be relative to the LDAP context specified in
dst.java.naming.provider.url
# lsc.tasks.oracle_2_ldap.dn = \"uid=\" +
srcBean.getAttributeValueById(\"uid\") + \",ou=People\"
lsc.tasks.oracle_2_ldap.dn = \"uid=\" + srcBean.getAttributeValueById(\"uid\")
+ \",ou=people\"
# -----------------------------------------------------------------------------
# Classe java pour comparer les donn?es SOURCE et DESTINATION
# -----------------------------------------------------------------------------
# Java class name for the LDAP objectClass to compare source and destination
objects
# This should be the LDAP objectClass of entries in the destination directory
lsc.tasks.oracle_2_ldap.bean = org.lsc.beans.inetOrgPersonBean
# -----------------------------------------------------------------------------
# Classe java pour
# -----------------------------------------------------------------------------
# Java class name for the LDAP objectClass to read source objects into
# This class should be generated by the LSC wizard and have set*() and get*()
methods
# for all attributes to read, as specified in
lsc.tasks.FirstTask.srcService.attrs or your SQL query.
# Champs parfois non g?n?r? par le wizard (Bug)
lsc.tasks.oracle_2_ldap.object = org.lsc.objects.inetOrgPerson
#lsc.syncoptions.MySyncTask=org.lsc.beans.syncoptions.PropertiesBasedSyncOptions
#lsc.syncoptions.MySyncTask.userPassword.default_value="changethis"
#lsc.syncoptions.MySyncTask.userPassword.action=K
#lsc.syncoptions.MySyncTask.default.action=F
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
# Task "oracle_2_ldap_tache_2"
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

