# LWP::Protocol::ldap - phpMan

## NAME
    [LWP::Protocol::ldap] - Provide LDAP support for [LWP::UserAgent]

## SYNOPSIS
      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 following RFC 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 HTTP *Accept* header contains the "text/dsml" MIME type,
        the response is sent as DSMLv1.

    JSON
        When the HTTP *Accept* header contains the "text/json" MIME type,
        the response is sent as JSON. For this to work the *JSON* Perl
        module needs to be installed.

    LDIF
        When the HTTP *Accept* header contains the "text/ldif" MIME type,
        the response is sent in LDIFv1 format.

    HTML
        In case no HTTP *Accept* header has been sent or none of the above
        MIME types can be detected, and the *x-format* extension has not
        been provided either, the response is sent using HTML markup in a
        2-column table format (roughly modeled on LDIF).

    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.

## SEE ALSO
    [LWP::Protocol::ldaps], [LWP::Protocol::ldapi]

## COPYRIGHT
    Copyright (c) 1998-2004 Graham Barr, 2012 Peter Marschall. All rights
    reserved. This program is free software; you can redistribute it and/or
    modify it under the same terms as Perl itself.

