python: проверка билета Kerberos - PullRequest
7 голосов
/ 29 июня 2010

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

Ответы [ 2 ]

7 голосов
/ 12 марта 2014

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

import subprocess

def has_kerberos_ticket():
    return True if subprocess.call(['klist', '-s']) == 0 else False
2 голосов
/ 25 ноября 2010

У вас есть два варианта: первый - использовать '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
...