python: подтвердите билет в kerberos

Мне интересно – если у кого-то есть элегантное решение проверить действительный билет Kerberos с помощью Python. Я не вижу в любом случае с klist или klist , который покажет, истек ли билет с кодом возврата, но я могу запустить klist и использовать регулярное выражение для вывода.

У вас есть два варианта: во-первых, использовать «klist -s» и проверить код возврата. Более приятным вариантом является использование модуля python-krbV :

 import krbV def has_ticket(): ''' Checks to see if the user has a valid ticket. ''' ctx = krbV.default_context() cc = ctx.default_ccache() try: princ = cc.principal() retval = True except krbV.Krb5Error: retval = False return retval 

Другой вариант – проверить статус выхода «klist -s» выглядит короче и не использует krbV:

 import subprocess def has_kerberos_ticket(): return True if subprocess.call(['klist', '-s']) == 0 else False