Discussion:
Probleme LDAP depuis Maj Convert::ASN1
(trop ancien pour répondre)
Xavier
2012-06-19 12:15:57 UTC
Permalink
Bonjou,

J'ai un script, inspiré d'un truc trouvé sur PerlMonks, dont le boulot est
d'extraire d'un annuaire LDAP (Active Directory) tous les enregistremnts ayant un
champ email. La requête est la suivante, et jusque samedi, elle marchait
(cf :
[***@ns ~]$ ls -ld /var/db/pkg/p5-Convert-ASN1-0.26/
drwxr-xr-x 2 root wheel 512 Jun 16 14:00 /var/db/pkg/p5-Convert-ASN1-0.26/

La requête est la suivante :

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
(Je vous fais grâce du bind, qui marche)

my @args = ( base => sprintf("ou=%s,%s", $ou, $hqbase),
filter => "(& (mailnickname=*) (| (&(objectCategory=person)
(objectClass=user)(!(homeMDB=*))(!(msExchHomeServerName=*)))
(&(objectCategory=person)(objectClass=user)(|(homeMDB=*)
(msExchHomeServerName=*)))(&(objectCategory=person)(objectClass=contact))
(objectCategory=group)(objectCategory=publicFolder)
(objectClass=msExchDynamicDistributionList) ))",
control => [ $page ],
attrs => "proxyAddresses, mail",
);

$mesg = $ldap->search( @args );
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Et, depuis la mise à jour de Convert::ASN1, ça échoue avec cette erreur :

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DB<3> x $mesg
0 Net::LDAP::Search=HASH(0x801f01a08)
'callback' => undef
'errorMessage' => 'Can\'t use string ("proxyAddresses, mail") as an ARRAY ref
while "strict refs" in use at
/usr/local/lib/perl5/site_perl/5.14.2/Convert/ASN1/_encode.pm line 269.'
'mesgid' => 2
'parent' => Net::LDAP=HASH(0x801e39270)
'net_ldap_async' => 0
'net_ldap_debug' => 0
'net_ldap_host' => 'ad.domain.fr'
'net_ldap_mesg' => HASH(0x801ea1fa8)
empty hash
'net_ldap_port' => 389
'net_ldap_refcnt' => 1
'net_ldap_resp' => HASH(0x801e81eb8)
empty hash
'net_ldap_scheme' => 'ldap'
'net_ldap_socket' => IO::Socket::INET=GLOB(0x8010773a8)
-> *Symbol::GEN0
FileHandle({*Symbol::GEN0}) => fileno(6)
'net_ldap_uri' => 'ad.domain.fr'
'net_ldap_version' => 3
'pdu' => undef
'raw' => undef
'resultCode' => 83
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Le but est de remplir une table localusers pour Postfix, parce que malgré une
journée d'essais, je n'ai pas réussi à faire fonctionner le mécanisme builin de
Postfix avec AD.

Si quelqu'un a une idée (à part downgrader Convert::ASN1) qu'il en soit remercié
pour 7 générations.
--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Thomas vO
2012-06-19 19:11:25 UTC
Permalink
Bonjour,

(at) Tue, 19 Jun 2012 14:15:57 +0200,
Post by Xavier
J'ai un script, inspiré d'un truc trouvé sur PerlMonks, dont le boulot
est d'extraire d'un annuaire LDAP (Active Directory) tous les
enregistremnts ayant un champ email. La requête est la suivante, et
jusque samedi, elle marchait
[...]
attrs => "proxyAddresses, mail",
'errorMessage' => 'Can\'t use string ("proxyAddresses, mail") as an ARRAY ref
while "strict refs" in use at
/usr/local/lib/perl5/site_perl/5.14.2/Convert/ASN1/_encode.pm line 269.'
a priori, la doc de Net::LDAP dit :
"attrs => [ ATTR, ... ]"

donc je dirai qu'en mettant :
attrs => ['proxyAddresses', 'mail'],

ça devrait aller mieux.
--
\begin[vendredi]{chgdate}
Tu n'aurais pas \usepackage{xlop} dans ton entête par hasard ?
\end{chgdate}
-+- Marc in fr.comp.text.tex -+-
Xavier
2012-06-20 15:50:22 UTC
Permalink
Post by Thomas vO
attrs => ['proxyAddresses', 'mail'],
ça devrait aller mieux.
Une référence anonyme à un tableau au lieu d'une chaîne, c'est ça ?

OK, c'est bon !

A noter que ce bug est présent dans la *totalité* des exemples sur
Net::LDAP dispo sur le Net :-}

Je me doutais un peu d'un truc du genre, mais faute de release notes, je
n'étais pas sûr....

Merci beaucoup !
--
XAv
In your pomp and all your glory you're a poorer man than me,
as you lick the boots of death born out of fear.
(Jethro Tull)
Loading...