LWP::Protocol::ldap (3)
Leading comments
Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) Standard preamble: ========================================================================
NAME
LWP::Protocol::ldap - Provide LDAP support for LWP::UserAgentSYNOPSIS
use LWP::UserAgent; $ua = LWP::UserAgent->new(); $res = $ua->get('ldap://ldap.example.com/' . 'o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)', Accept => 'text/json'):
DESCRIPTION
The LWP::Protocol::ldap module provides support for using ldap schemed URLs followingRFC 4516
with LWP.
This module is a plug-in to the LWP
protocol handling, so you don't use it directly.
In addition to being used with
LDAP
URIs, LWP::Protocol::ldap also acts
as the base class for its sibling modules LWP::Protocol::ldaps
and LWP::Protocol::ldapi.
Features
HTTP
methods supported
LWP::Protocol::ldap implements the
HTTP
GET
and HEAD
methods.
They are mapped to the LDAP
search operation,
Response format
Depending on the
HTTP
Accept header provided by the user agent,
LWP::Protocol::ldap can answer the requests in one of the following
formats:
- DSML
-
When the HTTPAccept header contains the "text/dsml"MIMEtype, the response is sent as DSMLv1.
- JSON
-
When the HTTPAccept header contains the "text/json"MIMEtype, the response is sent asJSON.For this to work theJSONPerl module needs to be installed.
- LDIF
-
When the HTTPAccept header contains the "text/ldif"MIMEtype, the response is sent in LDIFv1 format.
- HTML
-
In case no HTTPAccept header has been sent or none of the aboveMIMEtypes can be detected, and the x-format extension has not been provided either, the response is sent usingHTMLmarkup in a 2-column table format (roughly modeled onLDIF).
As an alternative to sending an
HTTP
Accept header, LWP::Protocol::ldap
also accepts the "x-format" extension
Example:
ldap://ldap.example.com/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)?x-format=dsml
TLS
support
For ldap and ldapi URIs, the module implements the "x-tls" extension that switches the
LDAP
connection to TLS
using a call of the
start_tls method.
Example:
ldap://ldap.example.com/o=University%20of%20Michigan,c=US??sub?(cn=Babs%20Jensen)?x-tls=1
Note: In the above example, ideally giving "x-tls" should be sufficient, but unfortunately the parser in URI::ldap has a little flaw.
Authorization
Usually the connection is done anonymously, but if the
HTTP
Authorization
header is provided with credentials for HTTP
Basic authorization,
the credentials given in that header will be used to do a simple
bind to the LDAP
server.