diff -up authconfig-6.2.8/authinfo.py.no-realm authconfig-6.2.8/authinfo.py --- authconfig-6.2.8/authinfo.py.no-realm 2016-06-16 14:25:21.354653226 +0200 +++ authconfig-6.2.8/authinfo.py 2016-06-16 14:27:56.335158214 +0200 @@ -1285,7 +1285,7 @@ class AuthInfo: self.ldapServer = "" self.ldapBaseDN = "" - self.kerberosRealm = "" + self.kerberosRealm = None self.kerberosRealmviaDNS = None self.kerberosKDC = "" self.kerberosKDCviaDNS = None @@ -1698,6 +1698,7 @@ class AuthInfo: section = "" self.allKerberosKDCs = {} self.allKerberosAdminServers = {} + realm_found = False # Open the file. Bail if it's not there or there's some problem # reading it. try: @@ -1720,6 +1721,7 @@ class AuthInfo: value = matchKeyEquals(line, "default_realm") if value: self.setParam("kerberosRealm", value, ref) + realm_found = True; continue; # Check for the DNS settings. value = matchKeyEquals(line, "dns_lookup_kdc") @@ -1746,6 +1748,7 @@ class AuthInfo: if not self.kerberosRealm: # No reason to use setParam here self.kerberosRealm = subsection + realm_found = True; # See if this is a key we care about. value = matchKeyEquals(line, "kdc") if value: @@ -1754,10 +1757,16 @@ class AuthInfo: value = matchKeyEquals(line, "admin_server") if value: self.allKerberosAdminServers[subsection] = commaAppend(self.getKerberosAdminServer(subsection), value) - if self.kerberosRealm: - self.setParam("kerberosKDC", self.getKerberosKDC(self.kerberosRealm), ref) - self.setParam("kerberosAdminServer", self.getKerberosAdminServer(self.kerberosRealm), ref) f.close() + if realm_found: + if self.kerberosRealm: + self.setParam("kerberosKDC", self.getKerberosKDC(self.kerberosRealm), ref) + self.setParam("kerberosAdminServer", self.getKerberosAdminServer(self.kerberosRealm), ref) + else: + if self.kerberosRealm: + self.inconsistentAttrs.append("kerberosRealm") + else: + self.setParam("kerberosRealm", "", ref) return True def readLibuser(self, ref): @@ -2477,6 +2486,8 @@ class AuthInfo: self.passwordAlgorithm = self.passwordAlgorithm.lower() if self.enableCacheCreds == None: self.enableCacheCreds = True # enabled by default + if self.kerberosRealm == None: + self.kerberosRealm = "" def read(self): ref = self.copy()