# Esempi ldap

**URL:** <https://www.ruby-forum.com/t/esempi-ldap/87842>\
**Category:** IT\
**Created:** [March 6, 2007, 11:02am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842 "2007-03-06T11:02:19Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:02am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/1 "2007-03-06T11:02:19Z")

</div>

Salve.  
Sto perdendo un sacco di tempo per fare un elementare programma di  
inserimento dati in un database ldap.  
Purtroppo in rete non ci sono molti esempi cosi’ mi fermo in piccoli  
problemi.  
Es:

def initialize  
@base = “ou=people,dc=xxx,dc=xxx,dc=it”  
@admin = “cn=admin,dc=xxx,dc=xxx,dc=it”  
@passwd = “xxx”  
@conn = LDAP::Conn.new(“localhost”)  
@conn.set\_option( LDAP::LDAP\_OPT\_PROTOCOL\_VERSION, 3 )  
@domain = “@xxx.xxx.it”  
end

def inserisci  
newentry = {  
“objectClass” =\>  
[“top”,“person”,“organizationalPerson”,“inetOrgPerson”,“posixAccount”],  
“dn” =\> “uid=#{uid},#@base”,  
“sn” =\> “#{cognome}”,  
“cn” =\> “#{nome} #{cognome}”,  
“mail” =\> “#{uid}#@domain”,  
“homeDirectory” =\> “/var/vmail/#{uid}”,  
“uidNumber” =\> “1004”,  
“gidNumber” =\> “1004”,  
“uid” =\> “#{uid}”,  
“userPassword” =\> “#{passwd}”,  
“employessNumber” =\> “#{codice}”  
}  
@conn.add(@base, newentry)  
end

Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String  
(expected Array) (TypeError)

ma dov’e’ il problema?

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:05am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/2 "2007-03-06T11:05:20Z")

</div>

On 3/6/07, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String  
> (expected Array) (TypeError)
> 
> ma dov’e’ il problema?

facciamo step by step. puoi mandare le righe da cui istanzi GesLDAP e la  
firma del costruttore di quella classe?

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:13am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/3 "2007-03-06T11:13:21Z")

</div>

Il giorno mar, 06/03/2007 alle 11.04 +0100, chiaro scuro ha scritto:

> On 3/6/07, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > Mi dice GesLDAP.rb:1:in `initialize’: wrong argument type String  
> > (expected Array) (TypeError)
> > 
> > ma dov’e’ il problema?
> 
> facciamo step by step. puoi mandare le righe da cui istanzi GesLDAP e la  
> firma del costruttore di quella classe?

e’ tutto in un file

require ‘ldap’

class Proxy1LDAP

def initialize  
@base = “ou=people,dc=xxx,dc=xxx,dc=it”  
@admin = “cn=admin,dc=xxx,dc=xxx,dc=it”  
@passwd = “xxx”  
@conn = LDAP::Conn.new(“localhost”)  
@conn.set\_option( LDAP::LDAP\_OPT\_PROTOCOL\_VERSION, 3 )  
@domain = “@xxx.xxx.it”  
end

def connetti  
@conn.bind(@admin, @passwd)  
rescue LDAP::ResultError  
errcode = @conn.err  
$stderr.puts(@conn.err2string(errcode))  
end

def inserisci(uid,nome,cognome,codice,passwd)

newentry = {  
“objectClass” =\>  
[“top”,“person”,“organizationalPerson”,“inetOrgPerson”,“posixAccount”],  
“dn” =\> “uid=#{uid},#@base”,  
“sn” =\> “#{cognome}”,  
“cn” =\> “#{nome} #{cognome}”,  
“mail” =\> “#{uid}#@domain”,  
“homeDirectory” =\> “/var/vmail/#{uid}”,  
“uidNumber” =\> “1004”,  
“gidNumber” =\> “1004”,  
“uid” =\> “#{uid}”,  
“userPassword” =\> “#{passwd}”,  
“employessNumber” =\> “#{codice}”  
}  
@conn.add(@base, newentry)  
end  
end

obj=Proxy1LDAP.new  
obj.connetti  
obj.inserisci(“nome.cognome”,“nome”,“cognome”,“11111”,“prova”)

questo e’ tutto, molto elementare, d’altronde sto iniziando.

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:26am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/4 "2007-03-06T11:26:23Z")

</div>

Il giorno mar, 06/03/2007 alle 11.19 +0100, chiaro scuro ha scritto:

> scusami, ma non riesco a capire su che riga ti da errore. e se lo da sulla  
> tua classe o su una classe del framework che usi (GesLDAP). nel secondo  
> caso, potresti fornirci il codice del metodo initialize della classe che ti  
> da problemi?

Il codice e’ tutto li.  
L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:34am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/5 "2007-03-06T11:34:24Z")

</div>

On 3/6/07, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).  
> è necessario capire cosa si aspetta il framework che usi. probabilmente  
> istanzia degli oggetti GesLDAP in base ai parametri che passi, e uno dei  
> tuoi parametri probabilmente dovrebbe essere un array. ti consiglio di  
> cercarti tra le librerie di ruby che hai installato quella di cui fai il  
> require e poi di andare a vederti sia il metodo ‘add’ della connection  
> che  
> il metodo initialize di GesLDAP. questo può fornirci indizi sulla  
> soluzione.

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 12:10pm UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/6 "2007-03-06T12:10:27Z")

</div>

On 3/6/07, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> GesLDAP e’ una classe fatta da me per gestire LDAP.  
> L’unica documentazione che ho trovato sul metodo conn.add e’ su  
> [RDoc Documentation](http://ruby-ldap.sourceforge.net/rdoc/)
> 
> ma non ho capito dove sbaglio nella sua invocazione.

la firma di add sembra ok. è possibile però che tu stia passando a una delle  
chiavi della hash una stringa, quando lui si aspetta un array per quella  
chiave. non mi intendo di ldap però e non ti so dire nulla di preciso.

non vedo invece GesLDAP usata nel tuo codice, come fa a darti errore su  
quella?

* * *

> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
– Kia

[therubymine.com](http://therubymine.com) | be a miner

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:38am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/7 "2007-03-06T11:38:24Z")

</div>

Il giorno mar, 06/03/2007 alle 11.32 +0100, chiaro scuro ha scritto:

> > Il codice e’ tutto li.  
> > L’errore me lo da quando chiamo il metodo @conn.add(@base, newentry).
> 
> Ã¨ necessario capire cosa si aspetta il framework che usi. probabilmente  
> istanzia degli oggetti GesLDAP in base ai parametri che passi, e uno dei  
> tuoi parametri probabilmente dovrebbe essere un array. ti consiglio di  
> cercarti tra le librerie di ruby che hai installato quella di cui fai il  
> require e poi di andare a vederti sia il metodo ‘add’ della connection che  
> il metodo initialize di GesLDAP. questo puÃ² fornirci indizi sulla soluzione.

GesLDAP e’ una classe fatta da me per gestire LDAP.  
L’unica documentazione che ho trovato sul metodo conn.add e’ su  
[http://ruby-ldap.sourceforge.net/rdoc/](http://ruby-ldap.sourceforge.net/rdoc/)

ma non ho capito dove sbaglio nella sua invocazione.

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 11:20am UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/8 "2007-03-06T11:20:23Z")

</div>

scusami, ma non riesco a capire su che riga ti da errore. e se lo da  
sulla  
tua classe o su una classe del framework che usi (GesLDAP). nel secondo  
caso, potresti fornirci il codice del metodo initialize della classe che  
ti  
da problemi?

On 3/6/07, Mauro S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> questo e’ tutto, molto elementare, d’altronde sto iniziando.
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
– Kia

[therubymine.com](http://therubymine.com) | be a miner

---

<div class="post-metadata">

**Author:** ![sulfarom](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/839c29/32.png) [@sulfarom](https://www.ruby-forum.com/u/sulfarom)\
**Post date:** [March 6, 2007, 12:15pm UTC](https://www.ruby-forum.com/t/esempi-ldap/87842/9 "2007-03-06T12:15:28Z")

</div>

> non vedo invece GesLDAP usata nel tuo codice, come fa a darti errore su  
> quella?

Avevo rinominato il file, si chiama Proxy1LDAP.
