From: Michael Tremer Date: Thu, 27 Apr 2023 18:23:15 +0000 (+0000) Subject: hub: Automatically fetch a TGT when a keytab has been given X-Git-Tag: 0.9.29~181 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=de84c8660d6e3eb57b6341110ac0fab5fdcba046;p=pakfire.git hub: Automatically fetch a TGT when a keytab has been given Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/hub.py b/src/pakfire/hub.py index 4dba78671..15ee9a377 100644 --- a/src/pakfire/hub.py +++ b/src/pakfire/hub.py @@ -70,6 +70,25 @@ class Hub(object): # XXX support proxies + # Fetch a TGT with the given keytab + if self.keytab: + self._setup_credentials_cache() + + self._fetch_kerberos_ticket() + + def _setup_credentials_cache(self): + """ + Create a temporary file to be used as Kerberos credentials cache + """ + self.credentials_cache = tempfile.NamedTemporaryFile() + + os.environ["KRB5CCNAME"] = self.credentials_cache.name + + def _fetch_kerberos_ticket(self): + command = ["kinit", "-k", "-t", self.keytab] + + p = subprocess.run(command, check=True, capture_output=True, text=True) + async def _socket(self, path, **kwargs): return await self._request("GET", path,