Fehler in LDAP Filter zusammenbau



  • zur Zeit ist folgernder Filter definiert:
    (&(objectClass=top)(objectClass=posixAccount))

    Die Attribut-mappings sind wie folgt:
    Username -> uid
    Groups -> memberUid
    Firstname -> givenName
    Lastname -> sn
    Mail address  ->
    Object class -> objectClass

    die autom. Mappings bzgl. Gruppenzuweisung sind auch gesetzt.

    Wenn ich mich nun mit einem 'ldap-user' anmelden möchte, dann wird der Filter 'falsch' zusammengebaut.
    –-snip debug log----
    2013-02-08 14:52:22 ldap: Creating new ldap-library connection to: 127.0.0.1:389, user: uid=search,ou=system,dc=example,dc=de
    2013-02-08 14:52:22 ldap: Connected to 127.0.0.1
    2013-02-08 14:52:22 ldap: Searching for username: cw
    2013-02-08 14:52:22 ldap: Getting user(s) using filter: (&(&(objectClass=top)(objectClass=posixAccount)(uid=cw)) in search-path: ou=people,dc=example,dc=de
    2013-02-08 14:52:22 ldap: ** No user found.
    2013-02-08 14:52:22 ldap: User not found. Check if cw exist in your configured search-path: ou=people,dc=example,dc=de

    der verwendete Filter:
    (&(&(objectClass=top)(objectClass=posixAccount)(uid=cw))

    müßte aber so aussehen:
    (&(objectClass=top)(objectClass=posixAccount)(uid=cw))

    da ist vorne ein "(&" zuviel.

    wäre toll, wenn ich dafür einen patch bekommen könnte.
    Danke
    Gruß
    Chris



  • Ich bin begeistert, wie sehr man sich hier um Fehler kümmert.
    Es scheint niemanden wirklich zu interessieren.
    Ich wär ja schon mit einem Tip zufrieden, der mir aufzeigt, wo im CODE ich danach suchen kann.

    Mit einem vernünftigen Bug-tracker wäre das wahrscheinlich anders.

    Gruß
    Chris


  • i-doit Kenner

    Hi,

    das hier ist ein User-Forum. Wenn du das Produkt gekauft und einen Supportvertrag mit uns abgeschlossen hast, bekommst du selbstverständlich immer zeitig eine Antwort.

    Da ich meine Glaskugel frisch geputzt habe, glaube ich zu wissen, dass du eine ältere Version einsetzt (die Open 0.9.9-7?), in der es den Fehler mal gab (in der neuen gibt es den natürlich nicht mehr). Der einzige Fix dafür ist, den Filter zu erstellen wie er benötigt wird und dann in der Datenbank händisch das "(&" aus dem Filter zu löschen.

    Lieben Gruß



  • Hi,

    danke für den Tip. Der Fix hilft aber nur dann, wenn and den definierten Filter noch was angehängt wird und der definierte FIlter vorne kein '(&' hat.
    Wenn der Fehler behoben wurde (in den neuen Versionen), dann muß es doch auch möglich sein einen Patch dafür zu liefern, oder ?

    Deine Glaskugel hat recht, es ist die 0.9.9-7, denn das ist die aktuellste, welche ich herunterladen kann, oder hab ich das was übersehen ?
    Falls ich nichts übersehen habe, wann ist mit einer neueren, freien Version zu rechnen ?

    Gruß
    Chris



  • Hi,

    hab den Filter jetzt manuell in der DB angepasst.

    
    2013-04-02 11:48:32 ldap: ----------------------------------------------------------------------------------------------
    2013-04-02 11:48:32 ldap: Creating new ldap-library connection to: 127.0.0.1:389, user: uid=search,ou=system,dc=xm,dc=de
    2013-04-02 11:48:32 ldap: Connected to 127.0.0.1
    2013-04-02 11:48:32 ldap: Trying to auth with DN: uid=cw,ou=people,dc=xm,dc=de
    2013-04-02 11:48:32 ldap:  + uid=cw,ou=people,dc=xm,dc=de / cw authenticated.
    2013-04-02 11:48:32 ldap: Getting user(s) using filter: (&(objectClass=top)(objectClass=posixAccount)(uid=cw)) in search-path: ou=people,dc=xm,dc=de
    2013-04-02 11:48:32 ldap: ** No user found.
    2013-04-02 11:48:32 ldap: ----------------------------------------------------------------------------------------------
    
    

    wenn ich das baer auf der console loslasse, dann findet man den user:

    
    root@squeeze-dev:~# ldapsearch -H ldap://127.0.0.1/ -D uid=search,ou=system,dc=xm,dc=de -b dc=xm,dc=de -x "(&(objectClass=top)(objectClass=posixAccount)(uid=cw))"
    # extended LDIF
    #
    # LDAPv3
    # base <dc=xm,dc=de>with scope subtree
    # filter: (&(objectClass=top)(objectClass=posixAccount)(uid=cw))
    # requesting: ALL
    #
    
    # cw, people, xm.de
    dn: uid=cw,ou=people,dc=xm,dc=de
    uid: cw
    cn: Christian xxxxxxx
    givenName: Christian
    sn: xxxxxxx
    uidNumber: 2290
    gidNumber: 2290
    shadowMin: -1
    shadowMax: 999999
    shadowWarning: 7
    shadowInactive: -1
    shadowExpire: -1
    shadowFlag: 0
    homeDirectory: /home/cw
    loginShell: /bin/bash
    o: xm
    
    # search result
    search: 2
    result: 0 Success
    
    # numResponses: 2
    # numEntries: 1</dc=xm,dc=de> 
    

    kann jemand bitte helfen ?

    Danke vielmals.
    Gruß
    Chris


Log in to reply
 


Datenschutz / Privacy Policy