o
    j                     @   s   G d d dZ dS )c                   @   sp   e Zd Zdd Zedd Zedd Zeddefd	d
Zdd Z	dd Z
dd ZeddedefddZdS )KerberosSPNc                 C   s   d | _ d | _d | _d | _d S N)usernameservicedomainportself r	   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/common/spn.py__init__   s   
zKerberosSPN.__init__c                 C   s
   t | S r   )r   from_upn)sr	   r	   r
   from_user_email   s   
zKerberosSPN.from_user_emailc                 C   s2   t  }| ddkrtd| d\|_|_|S )z!Converts UserPrincipalName to SPN@z$Incorrect format, @ sign is missing!)r   find	Exceptionsplitr   r   )r   ktr	   r	   r
   r      s
   zKerberosSPN.from_upnNoverride_realmc                 C   s   t  }| ddkr| dd\}|_|d\|_|_n#| ddkr/| dd\|_|_n| |_|du s:|dkr@td|  |durG||_|jddkrZ|jdd\|_|_|S )	zS
		Converts ServicePrincipalName to SPN
		service/host@domain
		or
		host@domain
		/r   r      N zIThe following SPN is incorrect without additionally setting the realm: %s:)	r   r   rsplitr   r   r   r   r   r   )r   r   r   tr	   r	   r
   from_spn   s   zKerberosSPN.from_spnc                 C   s6   | j r| jr| j d| j| jf gS | j | jgS | jgS )Nz%s:%s)r   r   r   r   r	   r	   r
   get_principalname5   s
   zKerberosSPN.get_principalnamec                 C   sH   | j r| jrd| j | j| j| jf S d| j | j| jf S d| j| jf S )Nz%s/%s:%s@%sz%s/%s@%sz%s@%s)r   r   r   r   r   r	   r	   r
   get_formatted_pname<   s
   zKerberosSPN.get_formatted_pnamec                 C   s   |   S r   )r   r   r	   r	   r
   __str__D   s   zKerberosSPN.__str__fpathc                 C   sf   g }t | d"}|D ]}| }|dkrq
t||}|| q
W d    |S 1 s,w   Y  |S )Nrr   )openstripr   r   append)r    r   resflinespnr	   r	   r
   	from_fileG   s   
zKerberosSPN.from_filer   )__name__
__module____qualname__r   staticmethodr   r   strr   r   r   r   r)   r	   r	   r	   r
   r      s    	

r   N)r   r	   r	   r	   r
   <module>   s   