Par exemple : nous avons un utilisateur dont le username est "JEAN" dans le LDAP.
Dans notre directory SQL, son username est donc "JEAN".
Si cet utilisateur se connecte en renseignant "jean", le LDAP retourne bien sa fiche mais lors de l'insertion dans le directory SQL :
1) nuxeo regarde si l'entry avec username "jean" existe, ce qui n'est pas le cas
2) nuxeo essaie d'insérer une entry avec username "JEAN" qui existe déjà et qui ne respecte pas nos contraintes d'unicité.
Pour régler ce problème nous avons tenté de forcer la casse au niveau du ldap directory, par exemple en upper. On voit effectivement que le LDAP est consulté avec la casse "JEAN", mais ça ne change rien du côté du directory SQL.
Comment régler ce problème ?
getEntryFromSource from table IRIS_USER with query SELECT * FROM "IRIS_USER" WHERE "username" = ? VALUES {Column(username):jean,} 2012-03-02 10:09:32.642|DEBUG|SDSI20|[http-0.0.0.0-9080-1]|com.afp.iris.sr.cms.directory.OracleSQLSession|ANONYMOUS-1330679372625|getEntryFromSource from table IRIS_USER with id jean : return null /* l'entry n'est pas trouvée alors qu'elle existe avec JEAN */ 2012-03-02 10:09:32.642|DEBUG|SDSI20|[http-0.0.0.0-9080-1]|com.afp.iris.sr.cms.directory.OracleSQLSession|ANONYMOUS-1330679372625|createEntry with query INSERT INTO "IRIS_USER" ("lastName", "username", "settingsModifiedDate", "firstName", "currentRole") VALUES (?, ?, ?, ?, ?) VALUES lastName:dupont username:JEAN settingsModifiedDate:java.util.GregorianCalendar[time=1330679372636,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Europe/Paris",offset=3600000,dstSavings=3600000,useDaylight=true,transitions=184,lastRule=java.util.SimpleTimeZone[id=Europe/Paris,offset=3600000,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=2,minimalDaysInFirstWeek=4,ERA=1,YEAR=2012,MONTH=2,WEEK_OF_YEAR=9,WEEK_OF_MONTH=1,DAY_OF_MONTH=2,DAY_OF_YEAR=62,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=1,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=9,SECOND=32,MILLISECOND=636,ZONE_OFFSET=3600000,DST_OFFSET=0] firstName:utest-PROD-FRA currentRole:producteur ...