Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

python: validate kerberos ticket

I'm wondering - if anyone has an elegant solution to checking for a valid Kerberos ticket using Python. I'm not seeing anyway with kinit or klist that will show if a ticket is expired with a return code but I could run klist and use a regex for the output .

like image 843
Joshua Avatar asked Jun 29 '10 18:06

Joshua


2 Answers

Another option is to check exit status of 'klist -s' looks shorter and does not use krbV:

import subprocess

def has_kerberos_ticket():
    return True if subprocess.call(['klist', '-s']) == 0 else False
like image 197
Mikhail Avatar answered Sep 21 '22 19:09

Mikhail


You've got two options: the first is to use 'klist -s' and check the return code. The nicer option is to use the python-krbV module:

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
like image 40
James Cape Avatar answered Sep 22 '22 19:09

James Cape