hallo,
vielleicht kann mir ja doch noch jemand helfen.
ich habe folgendes script gefunden und bräuchte dort doch nochmal hilfe.
folgenden Code habe ich
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#! /usr/bin/perl
use strict;
use warnings;
use Net::LDAPS;
use Net::LDAP;
my $host = "w.x.y.z:389";
my $ldaps = 0;
my $adminDn = "CN=LDAPAUTHUSER, CN=Users, OU=company,DC=company,CN=de";
my $adminPwd = "adminpassword!";
my $searchBase = "CN=department,OU=company,DC=company,CN=de";
my $userdn = testGuid ("$myGUID", "$password");
if ($userdn)
{
print "$userdn checks out!\n";
}
sub getUserDn
{
my $ldap;
my $guid = shift;
my $dn;
my $entry;
if ($ldaps) {
$ldap = Net::LDAPS->new($host, verify=>'none') or die "$@";
}
else {
$ldap = Net::LDAP->new($host, verify=>'none') or die "$@";
}
my $mesg = $ldap->bind ($adminDn, password=>"$adminPwd");
$mesg->code && return undef;
$mesg = $ldap->search(base => $searchBase, filter => "uid=$guid" );
$mesg->code && return undef;
$entry = $mesg->shift_entry;
if ($entry)
{
$dn = $entry->dn;
$entry->dump;
}
$ldap->unbind;
return $dn;
}
sub testGuid
{
my $ldap;
my $guid = shift;
my $userPwd = shift;
my $userDn = getUserDn ($guid);
return undef unless $userDn;
if ($ldaps) {
$ldap = Net::LDAPS->new($host, verify=>'none') or die "$@";
}
else {
$ldap = Net::LDAP->new($host, verify=>'none') or die "$@";
}
my $mesg = $ldap->bind ($userDn, password=>"$userPwd");
if ($mesg->code)
{
# Bad Bind
print $mesg->error . "\n";
return undef;
}
$ldap->unbind;
return $userDn;
}
Leider bekomme ich keine Antwort von dem Script. es scheint durchzulaufen, aber die Ausgabe bleibt leer.
my $userdn = testGuid ("$myGUID", "$password");
wird über eine andere subroutine gefüllt. das klappt auch soweit
habt ihr eine Idee
mittlerweile konnte ich selber lösen.
Last edited: 2011-11-15 14:20:33 +0100 (CET)