Hi All;

Sorry - having a brain-fart kinda day, so I'm appealing for some help....

Solaris 8, iPlanet DS 5.2

I want to do a search of all users who have the "service-indr" flag set to 
"true" and return only their dn and hashed password.  Sounds fishy I know, 
but I need to interface between systems and the powers-that-be don't want 
to spend the money to do it properly :-(

Anyway, here's what I have:

$ldap = Net::LDAP->new('myserver') or die "$@";

$mesg = $ldap->bind('cn=directory manager' ,password => 'mypass');

$mesg = $ldap->search(
                        base => "ou=customers,o=wam",
                        filter => "(service-indr=true)",
                        attrs => "(dn,userpassword)"
                     );

So at this point I'm assuming that I'm being returned only the 
userpassword attribute, but I don't think that's the case.  I've stolen 
some code from the FAQ page and it seems that rather than just the 
userpassword attribute I'm being returned the entire record:

my $max = $mesg->count;

  for( my $index = 0 ; $index < $max ; $index++)
  {
    my $entry = $mesg->entry($index);
    my $dn = $entry->dn; # Obtain DN of this entry

    @attrs = $entry->attributes; # Obtain attributes for this entry.
    foreach my $var (@attrs)
    {
     #get a list of values for a given attribute
     $attr = $entry->get_value( $var, asref => 1 );
     if ( defined($attr) )
     {
         foreach my $value ( @$attr )
          print "$dn : $value\n" if ($var =~ /userpassword/i);  # Print 
the DN and userpassword
        }
     }
    }
  }

I guess my question is how do I return only the DN and userpassword of the 
record, and how do I access them?

TIA
Rick




NOTICE:  This confidential e-mail message is only for the intended 
recipient(s). If you are not the intended recipient, be advised that 
disclosing, copying, distributing, or any other use of this message, is 
strictly prohibited. In such case, please destroy this message and notify 
the sender.

Reply via email to