File: ldapurl.rst

package info (click to toggle)
python-ldap 3.4.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,368 kB
  • sloc: python: 9,558; ansic: 3,052; makefile: 139; sh: 79
file content (130 lines) | stat: -rw-r--r-- 3,067 bytes parent folder | download | duplicates (3)
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'