Zastanawiam się - jeśli ktoś ma eleganckie rozwiązanie do sprawdzania ważnego biletu Kerberos za pomocą Pythona. I tak nie widzę z kinit
lub klist
, który pokaże, czy bilet wygasł z kodem powrotu, ale mógłbym uruchomić klist
i użyć wyrażenia regularnego dla wyjścia.python: sprawdź bilet Kerberos
6
A
Odpowiedz
3
Masz dwie opcje: pierwszą jest użycie "klist -s" i sprawdzenie kodu powrotu. Ładniejszy opcją jest użycie modułu 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
4
Inną opcją jest, aby sprawdzić status wyjścia „klist -s” wygląda krótszy i nie używa krbV:
import subprocess
def has_kerberos_ticket():
return True if subprocess.call(['klist', '-s']) == 0 else False
+1
Bardziej zwięźle: 'return not not not subprocess.call (['klist', '-s'])'? – scubbo
Powiązane problemy
- 1. /Kerberos w Django
- 2. Delegacja Kerberos nie działa w chrome
- 3. Bilet odnawiania formularzy odnawiany ręcznie:
- 4. Sprawdź format ciągów python?
- 5. Uwierzytelnianie Kerberos z pytonem
- 6. Kerberos z Javą
- 7. Uwierzytelnianie WCF i Kerberos
- 8. Kerberos for Thrift?
- 9. Zmiana uwierzytelnienia serwera Kerberos/SPNEGO w języku Java8
- 10. Python: Sprawdź plik jest zablokowany
- 11. osTicket, tworzyć bilet przez REST API
- 12. Sprawdź ciasteczko za pomocą Python Flask
- 13. Sprawdź liczbę parametrów przekazanych w funkcji Python
- 14. Python: Sprawdź, czy istnieje urządzenie/dev/disk
- 15. Python/win32com - Sprawdź, czy program jest otwarty
- 16. Python: Sprawdź, czy argument jest liczbą całkowitą
- 17. Sprawdź, czy obiekt obsługuje protokół buforowy python
- 18. Sprawdź, czy parametr jest modułem Python?
- 19. Python - sprawdź, czy obiekt jest wbudowaną funkcją
- 20. Nie powiodła się kontrola kontrolna: Kerberos/Spring/Active Directory (2008)
- 21. Czy ktoś ma ważny przykład na bilecie przyznającym bilet Proxy?
- 22. Oznacz bilet Jira naprawiony w ramach polecenia SVN
- 23. Opóźniona aktualizacja tytułów/odświeżania tytułów w tytule "Bilet", dlaczego?
- 24. Połączenie Kerberos za pomocą klienta HTTP
- 25. Kerberos za pośrednictwem javascript lub HTML 5
- 26. Użycie uwierzytelniania Kerberos dla aplikacji Serwer/Klient
- 27. Wbudowany w Javę serwer Kerberos do testowania
- 28. Kerberos: różnica między UPN i SPN
- 29. Python - Sprawdź, czy plik jest pusty, czy nie.
- 30. Python Sprawdź, czy lista kluczy istnieje w słowniku
Należy zauważyć, że nie są one odpowiednik: klist -s również kończy działanie niezerowe, jeśli istnieje cache z TGT, ale TGT wygasł. Powyższy kod krbV nie sprawdza, czy bilet wygasł; tylko, że w ogóle istnieje cache (przez odczytanie domyślnej wartości głównej z niego). A PO szczegółowo zapytał o wygaśnięcie biletu. –
A co z Pythonem 3? krbV nie działa. – dmranck
Po pierwsze, nie kompiluje się. Po drugie, nie odpowiada na pytanie. Nie ma żadnych informacji o tym, czy bilet wygasł, czy nie. Naucz się pisać odpowiedzi, które faktycznie odpowiadają na pytanie, zamiast wyrzucać losowe śmieci. –