【问题标题】:using Net::LDAPs with Net::LDAP::Control::Paged使用 Net::LDAPs 和 Net::LDAP::Control::Paged
【发布时间】:2023-03-30 21:40:01
【问题描述】:

我正在尝试将 Net::LDAPs 与 Net::LDAP::CONTROL::PAGED 一起使用,以通过 privlidged 绑定返回许多记录,但到目前为止我失败了,很惨。我过去广泛使用过这个 Net::LDAPs,但我从来没有找到任何文档表明它与 Net::LDAP:Control::Paged 兼容。我发现的一切都与 Net::LDAP 有关。

我得到的错误信息是:Undefined subroutine &main::process_entry called at /usr/local/share/perl/5.20.2/Net/LDAP/Search.pm line 55, line 755

这是我的代码:

sub Ldap636{
    my ($filter) = $_[0];
    my $USERNAME = 'username';
    my $PASSWORD = 'password';
    my $LDAP_SERVER = 'directory.domain.edu';
    my $LDAP_SSL_PORT = '636';
    my $LDAP_BASE = 'ou=people,dc=domain,dc=edu';
    my $userDN = "uid=$USERNAME,ou=identities,ou=special,dc=domain,dc=edu";

    my $ldap = Net::LDAPS->new($LDAP_SERVER, port => $LDAP_SSL_PORT) or die "Could not create LDAP object because:\n$!";

    my $ldapMsg = $ldap->bind($userDN, password => $PASSWORD);
    die $ldapMsg->error if $ldapMsg->is_error;

    my $page = Net::LDAP::Control::Paged->new( size => 100 );      

    @args = (base => "$LDAP_BASE",
            callback => \&process_entry,
            filter => $filter,
            control  => [ $page ],
    );

    my $cookie;
    while (1) {
            my $result = $ldap->search(@args);
            "LDAP error: server says ",$result->error,"\n" if $result->code;

            foreach my $entry ($result->entries ) {
                    my $cn   = $entry->get_value('cn');
                    my $desc = $entry->get_value('description');
                    print "$cn - $desc\n";
            }

            # Get cookie from paged control
            my($resp)  = $result->control( LDAP_CONTROL_PAGED )  or last;
            $cookie    = $resp->cookie or last;


            $page->cookie($cookie);
    }

    $ldap->unbind;
}

【问题讨论】:

  • 请分享错误信息。

标签: perl perl-module netldap


【解决方案1】:

我得到的错误信息是:Undefined subroutine &main::process_entry 在 /usr/local/share/perl/5.20.2/Net/LDAP/Search.pm 第 55 行调用, 第 755 行

您已将process_entry 编写为回调,但您没有编写该子例程。这就是您收到上述错误的原因。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多