我正在尝试创建一个Web服务器,它需要在服务器本身进行一些用户身份验证,我需要用Perl来完成,所以我决定尝试在localhost中使用LDAP服务器。
我一直在尝试使用下面的脚本。一切都配置正确(因为我试图搜索已配置的条目),但是,当我尝试运行脚本时,它告诉我“索引生成失败”
my $ldap = Net::LDAP->new( '127.0.0.1' ) or die "$@";
my $mesg = $ldap->bind ('cn=admin, dc=ramal, dc=com',
password=>'<admin_password>'
);
# $mesg->code or die $mesg->error;
my $result = $ldap->add('uid=pruebaPerl, ou=User, dc=ramal, dc=com',
attrs=> [
'uid' => 'pruebaPerl',
'cn' => 'Usuario de prueba de Perl',
'objectclass' => ['account', 'posixAccount', 'shadowAccount'],
'userPassword' => '<hashed password>',
'loginShell' => '/bin/bash',
'uidNumber' => 2001,
'gidNumber' => 2001,
'homeDirectory' => '/home/pruebaPerl'
]
);
$result->code and warn "Failed to add entry: ", $result->error;
$mesg = $ldap->unbind
我认为加法的论证有问题,但我不知道是什么,欢迎任何帮助。
1条答案
按热度按时间mhd8tkvw1#
绝对是
slapd
方面的问题。不是perl
方面的问题。这个旧的线程https://www.openldap.org/lists/openldap-software/200407/msg00007.html表明,也许你的测试ldap结构是使用slapadd而不是ldapadd创建的错误,或者你有一个权限问题。
您是否尝试过
strace
'ing slapd过程?同时尝试删除
'uid=pruebaPerl, ou=User, dc=ramal, dc=com' and 'cn=admin, dc=ramal, dc=com'
中的空格