Sponsored Content
Top Forums Shell Programming and Scripting Perl and Net::LDAP, objects and arrays query Post 302227593 by mikie on Thursday 21st of August 2008 02:40:35 PM
Old 08-21-2008
Perl and Net::LDAP, objects and arrays query

Hi

I'm not a programmer but am muddling through as best I can. I am trying to set up a PostSearchHook for Radiator (RADIUS server), that carries out an LDAP lookup, and, based on the
string returned ("staff" or "student") in the "businessCategory" attribute, will set the $role to be either 40 or 20 (a VLAN ID).

There can however be multiple attributes for "businessCategory" (I for example, have "staff" and "imageportaladmin"), but the only string values needed are "staff" or "student", a
nd if both are returned, then "staff" must take precedent.

The code I have so far:

Code:
#!/usr/bin/perl -w
use diagnostics;
use Net::LDAP;
my $role = "";
$ldap = Net::LDAP->new("ldap://ldaphost");
$ldap->bind();
$mesg = $ldap->search(base => "ou=people,dc=base",
                        scope => "1",
                        filter => "(uid=MLott)",
                        attrs => ['businessCategory'],
                        );

                                        
# unbind from LDAP cleanly
$mesg = $ldap->unbind();

What I'm not clear on is how I retrieve the data in the $mesg object. If I add the following code above the unbind() method:

Code:
foreach $entry (@entries) {
        $entry->dump;
}

I get:

Code:
------------------------------------------------------------------------
dn:uid=MLott,ou=People,dc=base

businessCategory: staff
                  imageportaladmin

However, I need to be able to query this data for the correct strings (that I mentioned earlier). I know that dump() is method of Net::LDAP, but it shows that the query result is
correct.

If I add the following lines so that I can get a count, I only get the result of "1":

Code:
foreach $max ($mesg->count) {
        print "Count = $max\n";
}

Is that because it is "1" object returned (as opposed to items in a scalar list)?

Any help would be great.

Thanks,

Mike
 

10 More Discussions You Might Find Interesting

1. Solaris

New to Perl-LDAP

Hi all I am new to perl-ldap. Trying to install DBD module on sun solaris which has the iplanet51 ldap already installed. I have got the DBD-LDAP-0.03.tar file , and un packed it. From the dir DBD-LDAP-0.03 - i tried to do $ perl Makefile.PL and i got the... (10 Replies)
Discussion started by: kaushi
10 Replies

2. UNIX for Dummies Questions & Answers

LDAP search query help

I would like to do an ldap search which looks for entries which do not actually have a certain attribute. Not that the attribute is Null, but where the attribute does not exist. Is this possible using ldapsearch? (3 Replies)
Discussion started by: dopple
3 Replies

3. Solaris

Net-SNMP v5.4 - sub-id not found in log, but can query with snmpget and snmpwalk

Hi everyone, I'm configuring Net-SNMP v5.4 on Solaris 10, sending traps to OpenNMS 1.2.9-0.20061212.0. I'm setting up disk monitoring (% of space free) for 5 directories. Here's what I'm working with: (snmpd.conf - disk and monitoring portions) # # Disk Usage monitoring: # disk / 20%... (0 Replies)
Discussion started by: Mariognarly
0 Replies

4. Shell Programming and Scripting

PERL: Replace multiple objects within a string

looking to replace parameters within a string with an external answer - with multiple replacements within a string %% will be used to wrap the objects to be replaced i.e. hello %%title%% %%user%% from %%address%% you last %%action%% on %%object%% the params will be used to make calls to a... (1 Reply)
Discussion started by: bidbrooken
1 Replies

5. UNIX for Dummies Questions & Answers

Awk - query about arrays

Hello again, I have example config file with two arrays: tab1="name1 surname1" tab1="name2 surname2" tab1="name3 surname3" tab2="First" tab2="Second"and csv file: "aaaaa","surname1","name1","ddddd,eeeee","ffffff","ggggg","3","2012/02/22 12:25:21","2012/02/22... (7 Replies)
Discussion started by: haczyk
7 Replies

6. Shell Programming and Scripting

perl - return an object from subroutine - Net::LDAP

Hi all, I'm not even sure a person can do this in perl, seems like you should be able to though. Here's the error IO::Socket::INET: connect: Operation now in progress at server_search.pl line 256, <DATA> line 466. Here's the perl code... sub ldap_new{ $nl = Net::LDAP->new( "$_" ) or... (3 Replies)
Discussion started by: jtollefson
3 Replies

7. Shell Programming and Scripting

Ldap search query

Hi All, I have a existing Ldap query which take a HOME as variable and gives the result where i grep for a particular line. ldapsearch -h server_domain_name -p 389 -D "uid=user,ou=appadm,o=ent" -w PaB -b "ou=roles,o=ent" "cidx=$HOME" | grep -w "ent: xyz" Now i have 330K Homes in a... (1 Reply)
Discussion started by: posner
1 Replies

8. Emergency UNIX and Linux Support

LDAP and AD Authentication Query

Hi Friends, I have below scenarios . dom1.test.com - LDAP dom2.test.com - AD Requirement is establish a trust relation between LDAP and AD server in such a way that if any user login on LDAP managed authentication server with dom1\username -> get authenticated by LDAP host ... (2 Replies)
Discussion started by: Shirishlnx
2 Replies

9. UNIX and Linux Applications

LDAP Group query

I need to write LDAP group query where I need to find if a particular user is a member of a 2 specific Groups. This is LDAP Novell edirectory implementation. Below are the details - ================ LDIF entry for OndotAPI group dn: cn=OndotAPI,ou=Groups,o=CNS changetype: add ... (0 Replies)
Discussion started by: jhamaks
0 Replies

10. UNIX for Advanced & Expert Users

LDAP Query - host allowed option

I have an in interesting dilemna that I am trying to address. I have some ldap queries that I use to retrieve user information to perform access validations on a quarterly/annual basis. I can successfully pull the local users, and I can use ldapsearch to pull back all the users from the DN as well.... (7 Replies)
Discussion started by: dagamier
7 Replies
Net::LDAP::Extension::WhoAmI(3) 			User Contributed Perl Documentation			   Net::LDAP::Extension::WhoAmI(3)

NAME
Net::LDAP::Extension::WhoAmI - LDAP "Who am I?" Operation SYNOPSIS
use Net::LDAP; use Net::LDAP::Extension::WhoAmI; $ldap = Net::LDAP->new( "ldap.mydomain.eg" ); $ldap->bind('cn=Joe User,cn=People,dc=example,dc=com", password => 'secret'); $mesg = $ldap->who_am_i(); die "error: ", $mesg->code(), ": ", $mesg->error() if ($mesg->code()); print "you are bound with authzId ", $mesg->response(), " "; DESCRIPTION
"Net::LDAP::Extension::WhoAmI" implements the "Who am I?" extended LDAPv3 operation as described in draft-zeilenga-ldap-authzid-09. It implements no object by itself but extends the Net::LDAP object by another method: METHODS
who_am_i Obtain the authorization identity which the server has associated with the user or application entity. SEE ALSO
Net::LDAP, Net::LDAP::Extension AUTHOR
Norbert Klasen <norbert.klasen@avinci.de>, Please report any bugs, or post any suggestions, to the perl-ldap mailing list <perl-ldap@perl.org> COPYRIGHT
Copyright (c) 2002-2004 Graham Barr. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.1 2010-03-12 Net::LDAP::Extension::WhoAmI(3)
All times are GMT -4. The time now is 08:21 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy