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 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
###################################
:py:mod:`ldapurl` LDAP URL handling
###################################
.. py:module:: ldapurl
:synopsis: Parses and generates LDAP URLs
.. moduleauthor:: python-ldap project (see https://www.python-ldap.org/)
This module parses and generates LDAP URLs. It is implemented in pure Python
and does not rely on any non-standard modules. Therefore it can be used stand-
alone without the rest of the python-ldap package.
.. seealso::
:rfc:`4516` - The LDAP URL Format
Constants
=========
The :mod:`ldapurl` module exports the following constants:
.. py:data:: SEARCH_SCOPE
This dictionary maps a search scope string identifier to the corresponding
integer value used with search operations in :mod:`ldap`.
.. py:data:: SEARCH_SCOPE_STR
This dictionary is the inverse to :const:`SEARCH_SCOPE`. It maps a search scope
integer value to the corresponding string identifier used in a LDAP URL string
representation.
.. py:data:: LDAP_SCOPE_BASE
.. py:data:: LDAP_SCOPE_ONELEVEL
.. py:data:: LDAP_SCOPE_SUBTREE
Functions
=========
.. autofunction:: ldapurl.isLDAPUrl
.. autofunction:: ldapurl.ldapUrlEscape
Classes
=======
.. _ldapurl-ldapurl:
LDAP URLs
^^^^^^^^^
A :py:class:`LDAPUrl` object represents a complete LDAP URL.
.. autoclass:: ldapurl.LDAPUrl
:members:
.. versionchanged:: 3.4.0
The urlscheme is now case insensitive and always converted to lower
case. ``LDAP://localhost`` is equivalent to ``ldap://localhost``.
LDAP URL extensions
^^^^^^^^^^^^^^^^^^^
A :py:class:`LDAPUrlExtension` object represents a single LDAP URL extension
whereas :py:class:`LDAPUrlExtensions` represents a list of LDAP URL extensions.
.. _ldapurl-ldapurlextension:
.. autoclass:: ldapurl.LDAPUrlExtension
:members:
.. _ldapurl-ldapurlextensions:
.. autoclass:: ldapurl.LDAPUrlExtensions
:members:
.. _ldapurl-example:
Example
^^^^^^^
Important security advice:
For security reasons you should not specify passwords in LDAP URLs
unless you really know what you are doing.
The following example demonstrates how to parse a LDAP URL
with :mod:`ldapurl` module.
>>> import ldapurl
>>> ldap_url = ldapurl.LDAPUrl('ldap://localhost:1389/dc=stroeder,dc=com?cn,mail???bindname=cn=Michael%2cdc=stroeder%2cdc=com,X-BINDPW=secret')
>>> # Using the parsed LDAP URL by reading the class attributes
>>> ldap_url.dn
'dc=stroeder,dc=com'
>>> ldap_url.hostport
'localhost:1389'
>>> ldap_url.attrs
['cn','mail']
>>> ldap_url.filterstr
'(objectclass=*)'
>>> ldap_url.who
'cn=Michael,dc=stroeder,dc=com'
>>> ldap_url.cred
'secret'
>>> ldap_url.scope
0
The following example demonstrates how to generate a LDAP URL
with \module{ldapurl} module.
>>> import ldapurl
>>> ldap_url = ldapurl.LDAPUrl(hostport='localhost:1389',dn='dc=stroeder,dc=com',attrs=['cn','mail'],who='cn=Michael,dc=stroeder,dc=com',cred='secret')
>>> ldap_url.unparse()
'ldap://localhost:1389/dc=stroeder,dc=com?cn,mail?base?(objectclass=*)?bindname=cn=Michael%2Cdc=stroeder%2Cdc=com,X-BINDPW=secret'
|