Esempio n. 1
0
 def _get_bytes_ldapobject(self, explicit=True):
     if explicit:
         kwargs = {'bytes_mode': True}
     else:
         kwargs = {}
     l = LDAPObject(server.get_url(), **kwargs)
     l.protocol_version = 3
     l.set_option(ldap.OPT_REFERRALS,0)
     l.simple_bind_s(self.server.get_root_dn().encode('utf-8'),
             self.server.get_root_password().encode('utf-8'))
     return l
 def _get_bytes_ldapobject(self, explicit=True):
     if explicit:
         kwargs = {'bytes_mode': True}
     else:
         kwargs = {}
     l = LDAPObject(server.get_url(), **kwargs)
     l.protocol_version = 3
     l.set_option(ldap.OPT_REFERRALS, 0)
     l.simple_bind_s(self.server.get_root_dn().encode('utf-8'),
                     self.server.get_root_password().encode('utf-8'))
     return l
Esempio n. 3
0
    def setUp(self):
        global server
        if server is None:
            server = SlapdObject()
            server.start()
            base = server.suffix
            suffix_dc = base.split(',')[0][3:]

            # insert some Foo* objects via ldapadd
            server.ldapadd("\n".join([
                'dn: ' + server.suffix,
                'objectClass: dcObject',
                'objectClass: organization',
                'dc: ' + suffix_dc,
                'o: ' + suffix_dc,
                '',
                'dn: ' + server.root_dn,
                'objectClass: applicationProcess',
                'cn: ' + server.root_cn,
                '',
                "dn: cn=Foo1," + base,
                "objectClass: organizationalRole",
                "cn: Foo1",
                "",
                "dn: cn=Foo2," + base,
                "objectClass: organizationalRole",
                "cn: Foo2",
                "",
                "dn: cn=Foo3," + base,
                "objectClass: organizationalRole",
                "cn: Foo3",
                "",
                "dn: ou=Container," + base,
                "objectClass: organizationalUnit",
                "ou: Container",
                "",
                "dn: cn=Foo4,ou=Container," + base,
                "objectClass: organizationalRole",
                "cn: Foo4",
                "",
            ]) + "\n")

        l = LDAPObject(server.ldap_uri, bytes_mode=False)
        l.protocol_version = 3
        l.set_option(ldap.OPT_REFERRALS, 0)
        l.simple_bind_s(server.root_dn, server.root_pw)
        self.ldap = l
        self.server = server
Esempio n. 4
0
class Add(object):
  '''
  Description: 
    --------------------------------------------------------
    Add a user to a group
    --------------------------------------------------------
  '''

  def __init__(self,
               server,
               user_email,
               password,
               dc,
               port = 389):
    self.dc = dc
    self.server = server
    self.port = port
    self.user_email = user_email
    self.pwd = password
    self.logger = logging.getLogger("ADQueryLogger")
    self.uri = 'ldap://' + self.server + ':' + str(self.port)
    
  def __connect(self):
    self.ldap_obj = LDAPObject(self.uri)
    self.ldap_obj.protocol_version = ldap.VERSION3
    self.ldap_obj.set_option(ldap.OPT_REFERRALS,0)
    self.ldap_obj.simple_bind_s(self.user_email, self.pwd)
  
  def __disconnect(self):
    self.ldap_obj.unbind_ext_s()  
  
  def add_group(self, gp_dn, user_dn):
    self.__connect()
    attrib = ([(ldap.MOD_ADD,'member', user_dn)])
    success = False
    print type(gp_dn), gp_dn
    print type(user_dn), user_dn
    try:
      self.ldap_obj.modify_s(gp_dn, attrib)
      success = True
    except Exception, e:
      print e
    finally:
Esempio n. 5
0
    def setUp(self):
        global server
        if server is None:
            server = slapd.Slapd()
            server.start()
            base = server.get_dn_suffix()

            # insert some Foo* objects via ldapadd
            server.ldapadd("\n".join([
                "dn: cn=Foo1,"+base,
                "objectClass: organizationalRole",
                "cn: Foo1",
                "",
                "dn: cn=Foo2,"+base,
                "objectClass: organizationalRole",
                "cn: Foo2",
                "",
                "dn: cn=Foo3,"+base,
                "objectClass: organizationalRole",
                "cn: Foo3",
                "",
                "dn: ou=Container,"+base,
                "objectClass: organizationalUnit",
                "ou: Container",
                "",
                "dn: cn=Foo4,ou=Container,"+base,
                "objectClass: organizationalRole",
                "cn: Foo4",
                "",
            ])+"\n")

        l = LDAPObject(server.get_url())
        l.protocol_version = 3
        l.set_option(ldap.OPT_REFERRALS,0)
        l.simple_bind_s(server.get_root_dn(), 
                server.get_root_password())
        self.ldap = l
        self.server = server
Esempio n. 6
0
        'start_tls': 'startTLS',
        'trace_level': 'trace',
    }


ldap_url = MyLDAPUrl(sys.argv[1])
trace_level = int(ldap_url.trace_level or '0')

print('***trace_level', trace_level)

ldap.trace_level = trace_level

l = LDAPObject(
    ldap_url.initializeUrl(),
    trace_level=trace_level,
)

l.protocol_version = 3
l.set_option(ldap.OPT_REFERRALS, 0)
l.simple_bind_s((ldap_url.who or ''), (ldap_url.cred or ''))

result = l.search_s(ldap_url.dn, ldap_url.scope or ldap.SCOPE_SUBTREE,
                    ldap_url.filterstr or '(objectClass=*)', ldap_url.attrs
                    or ['*'])

pprint.pprint(result)

print('***DIAGNOSTIC_MESSAGE', repr(l.get_option(ldap.OPT_DIAGNOSTIC_MESSAGE)))

l.unbind_s()
Esempio n. 7
0

ldap_url = MyLDAPUrl(sys.argv[1])
trace_level = int(ldap_url.trace_level or '0')

print '***trace_level',trace_level

ldap.trace_level = trace_level

l = LDAPObject(
  ldap_url.initializeUrl(),
  trace_level=trace_level,
)

l.protocol_version = 3
l.set_option(ldap.OPT_REFERRALS,0)
l.simple_bind_s((ldap_url.who or ''),(ldap_url.cred or ''))

msgid = l.search(
  ldap_url.dn,
  ldap_url.scope or ldap.SCOPE_SUBTREE,
  ldap_url.filterstr or '(objectClass=*)',
  ldap_url.attrs or ['*']
)

print "msgid=",msgid
count = 0

result = l.result(msgid, True, 0)

while(result[0] != ldap.RES_SEARCH_RESULT):
Esempio n. 8
0
 def _get_ldapobject(self, bytes_mode=None):
     l = LDAPObject(self.server.ldap_uri, bytes_mode=bytes_mode)
     l.protocol_version = 3
     l.set_option(ldap.OPT_REFERRALS,0)
     return l
Esempio n. 9
0
class EditionTests(SlapdTestCase):

    @classmethod
    def setUpClass(cls):
        super().setUpClass()
        base = cls.server.suffix
        suffix_dc = base.split(',')[0][3:]

        # insert some Foo* objects via ldapadd
        cls.server.ldapadd("\n".join([
            'dn: '+cls.server.suffix,
            'objectClass: dcObject',
            'objectClass: organization',
            'dc: '+suffix_dc,
            'o: '+suffix_dc,
            '',
            'dn: '+cls.server.root_dn,
            'objectClass: applicationProcess',
            'cn: '+cls.server.root_cn,
            '',
            "dn: cn=Foo1,"+base,
            "objectClass: organizationalRole",
            "cn: Foo1",
            "",
            "dn: cn=Foo2,"+base,
            "objectClass: organizationalRole",
            "cn: Foo2",
            "",
            "dn: cn=Foo3,"+base,
            "objectClass: organizationalRole",
            "cn: Foo3",
            "",
            "dn: ou=Container,"+base,
            "objectClass: organizationalUnit",
            "ou: Container",
            "",
            "dn: cn=Foo4,ou=Container,"+base,
            "objectClass: organizationalRole",
            "cn: Foo4",
            "",
        ])+"\n")

    def setUp(self):
        self.ldap = LDAPObject(self.server.ldap_uri, bytes_mode=False)
        self.ldap.protocol_version = 3
        self.ldap.set_option(ldap.OPT_REFERRALS, 0)
        self.ldap.simple_bind_s(
            self.server.root_dn,
            self.server.root_pw
        )

    def tearDown(self):
        self.ldap.unbind()

    def test_add_object(self):
        base = self.server.suffix
        dn = "cn=Added,ou=Container," + base
        self.ldap.add_ext_s(dn, [
            ("objectClass", [b'organizationalRole']),
            ("cn", [b'Added']),
        ])

        # Lookup the object
        result = self.ldap.search_s(base, ldap.SCOPE_SUBTREE, '(cn=Added)', ['*'])
        self.assertEqual(result, [
            ("cn=Added,ou=Container," + base,
                {'cn': [b'Added'], 'objectClass': [b'organizationalRole']}),
        ])
        # Delete object
        self.ldap.delete_s(dn)
        result = self.ldap.search_s(
            base, ldap.SCOPE_SUBTREE, '(cn=Added)', ['*']
        )
        self.assertEqual(result, [])