|
621 |
self.username = username |
621 |
self.username = username |
622 |
self.password = password |
622 |
self.password = password |
623 |
|
623 |
|
624 |
creds = Credentials() |
624 |
self.creds = Credentials() |
625 |
# creds.guess(lp) |
625 |
# creds.guess(lp) |
626 |
creds.set_domain("") |
626 |
self.creds.set_domain("") |
627 |
creds.set_workstation("") |
627 |
self.creds.set_workstation("") |
628 |
creds.set_kerberos_state(DONT_USE_KERBEROS) |
628 |
self.creds.set_kerberos_state(DONT_USE_KERBEROS) |
629 |
creds.set_username(self.username) |
629 |
self.creds.set_username(self.username) |
630 |
creds.set_password(self.password) |
630 |
self.creds.set_password(self.password) |
631 |
|
631 |
|
632 |
try: |
632 |
try: |
633 |
self.samdb = SamDB(self.ldap_uri, credentials=creds, session_info=system_session(self.lp), lp=self.lp) |
633 |
self.samdb = SamDB(self.ldap_uri, credentials=self.creds, session_info=system_session(self.lp), lp=self.lp) |
634 |
except ldb.LdbError: |
634 |
except ldb.LdbError: |
635 |
raise AuthenticationFailed() |
635 |
raise AuthenticationFailed() |
636 |
|
636 |
|
|
638 |
ntds_guid = self.samdb.get_ntds_GUID() |
638 |
ntds_guid = self.samdb.get_ntds_GUID() |
639 |
local_ntds_guid = None |
639 |
local_ntds_guid = None |
640 |
try: |
640 |
try: |
641 |
local_samdb = SamDB("ldap://127.0.0.1", credentials=creds, session_info=system_session(self.lp), lp=self.lp) |
641 |
local_samdb = SamDB("ldap://127.0.0.1", credentials=self.creds, session_info=system_session(self.lp), lp=self.lp) |
642 |
local_ntds_guid = local_samdb.get_ntds_GUID() |
642 |
local_ntds_guid = local_samdb.get_ntds_GUID() |
643 |
except ldb.LdbError: |
643 |
except ldb.LdbError: |
644 |
pass |
644 |
pass |
|
672 |
self.domain_info = lookup_adds_dc(self.hostname_or_ip) |
672 |
self.domain_info = lookup_adds_dc(self.hostname_or_ip) |
673 |
self.domain_info['ad_os'] = self.operatingSystem(self.domain_info["ad_netbios_name"]) |
673 |
self.domain_info['ad_os'] = self.operatingSystem(self.domain_info["ad_netbios_name"]) |
674 |
|
674 |
|
|
|
675 |
def reconnect(self): |
676 |
try: |
677 |
self.samdb = SamDB(self.ldap_uri, credentials=self.creds, session_info=system_session(self.lp), lp=self.lp) |
678 |
except ldb.LdbError: |
679 |
raise AuthenticationFailed() |
680 |
|
675 |
def operatingSystem(self, netbios_name): |
681 |
def operatingSystem(self, netbios_name): |
676 |
msg = self.samdb.search(base=self.samdb.domain_dn(), scope=samba.ldb.SCOPE_SUBTREE, |
682 |
msg = self.samdb.search(base=self.samdb.domain_dn(), scope=samba.ldb.SCOPE_SUBTREE, |
677 |
expression="(sAMAccountName=%s$)" % netbios_name, |
683 |
expression="(sAMAccountName=%s$)" % netbios_name, |
|
1033 |
|
1039 |
|
1034 |
## Fix some attributes in local SamDB |
1040 |
## Fix some attributes in local SamDB |
1035 |
operatingSystem_attribute(self.ucr, self.samdb) |
1041 |
operatingSystem_attribute(self.ucr, self.samdb) |
1036 |
takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"]) |
1042 |
try: |
|
|
1043 |
takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"]) |
1044 |
except ldb.LdbError as ex: |
1045 |
log.debug('Exception during LDAP search of remote LDAP: %s' % (ex.args[0],)) |
1046 |
log.debug('Might be due to a timeout, attempting to reconnect.') |
1047 |
self.AD.reconnect() |
1048 |
takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"]) |
1037 |
|
1049 |
|
1038 |
## Fix some attributes in SecretsDB |
1050 |
## Fix some attributes in SecretsDB |
1039 |
secretsdb = samba.Ldb(os.path.join(SAMBA_PRIVATE_DIR, "secrets.ldb"), session_info=system_session(self.lp), lp=self.lp) |
1051 |
secretsdb = samba.Ldb(os.path.join(SAMBA_PRIVATE_DIR, "secrets.ldb"), session_info=system_session(self.lp), lp=self.lp) |