o
    �õ±jð  ã                   @   sŠ   d dl Z d dlZd dlZd dlmZmZ d dlmZ d dlm	Z	 d dl
mZ ddeded	ed
edef
dd„Zdd„ ZedkrCeƒ  dS dS )é    N)ÚKerberosClientFactoryÚkerberos_url_help_epilog)ÚKerberosSPN)ÚAIOKerberosClient)ÚKirbiFÚkerberos_urlÚspnÚ	kirbifileÚ
ccachefileÚcross_domainc                 Ã   sì   �t |tƒrt |¡}t | ¡}| ¡ }t d¡ | 	¡ I d H  |du r:t d¡ | 
|j¡I d H \}}}}| ¡ }t d¡ | |¡I d H \}	}
}|d urZ|j |¡ td| ƒ t |	|
¡}tt|ƒƒ |d uro| |¡ t d¡ d S )NzGetting TGTTz"Getting TGS for otherdomain krbtgtzGetting TGSzTGT stored in ccache file %szDone!)Ú
isinstanceÚstrr   Úfrom_spnr   Úfrom_urlÚ
get_clientÚloggingÚdebugÚget_TGTÚget_referral_ticketÚdomainÚget_TGSÚccacheÚto_fileÚprintr   Úfrom_ticketdataÚinfo)r   r   r	   r
   r   ÚcuÚclientÚ_Únew_factoryÚtgsÚencpartÚkeyÚkirbi© r$   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/examples/getTGS.pyÚgetTGS	   s*   €






r&   c                  C   sà   dd l } | jd| jtd�}|jddddd� |jdd	d
� |jddd
� |jdddd� |jddd
� |jddd
� | ¡ }|jdkrKtjtj	d� n|jdkrXtjtj
d� ntjdd� t t|j|j|j|j|jƒ¡ d S )Nr   zQPolls the kerberos service for a TGS for the sepcified user and specified service)ÚdescriptionÚformatter_classÚepilogz-vz	--verboseÚcount)ÚactionÚdefaultz--ccachezQCCACHE file to store the TGT ticket in, otherwise kirbi will be printed to stdout)Úhelpz--kirbizPkirbi file to store the TGT ticket in, otherwise kirbi will be printed to stdoutz--cross-domainÚ
store_truezSPN is in another domain.)r+   r-   r   zthe kerberos target string. r   zLthe SPN to request the TGS for. Must be in the format of service/host@domain)Úlevelé   )ÚargparseÚArgumentParserÚRawDescriptionHelpFormatterr   Úadd_argumentÚ
parse_argsÚverboser   ÚbasicConfigÚINFOÚDEBUGÚasyncioÚrunr&   r   r   r#   r   r   )r1   ÚparserÚargsr$   r$   r%   Úmain"   s   

$r>   Ú__main__)NNF)Úosr   r:   Úminikerberos.common.factoryr   r   Úminikerberos.common.spnr   Úminikerberos.aioclientr   Úminikerberos.common.kirbir   r   Úboolr&   r>   Ú__name__r$   r$   r$   r%   Ú<module>   s     
ÿ