403Webshell
Server IP : 138.197.176.125  /  Your IP : 216.73.217.54
Web Server : Apache/2.4.41 (Ubuntu)
System : Linux SuiteCRM-8 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User : root ( 0)
PHP Version : 8.3.19
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /lib/python3/dist-packages/sos/policies/auth/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/sos/policies/auth/__pycache__/__init__.cpython-38.pyc
U

-�_g� �@szddlZzddlZdZWnek
r0dZYnXddlZddlmZmZddlmZdZ	dZ
e�d�ZGd	d
�d
�Z
dS)�NTF)�datetime�	timedelta)�TIMEOUT_DEFAULTz	sos-toolsz,urn:ietf:params:oauth:grant-type:device_codeZsosc@sZeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zddd�ZdS)�DeviceAuthorizationClassz$
    Device Authorization Class
    cCs*d|_d|_d|_||_||_|��dS)N)�
_access_token�_access_expires_at�&_DeviceAuthorizationClass__device_code�client_identifier_url�token_endpoint�_use_device_code_grant)�selfr	r
�r
�</usr/lib/python3/dist-packages/sos/policies/auth/__init__.py�__init__!sz!DeviceAuthorizationClass.__init__cCs$|��td|j���|��dS)zv
        Start the device auth flow. In the future we will
        store the tokens in an in-memory keyring.

        z<Please visit the following URL to authenticate this device: N)�_request_device_code�print�_verification_uri_complete�poll_for_auth_completion�rr
r
rr+s

�z/DeviceAuthorizationClass._use_device_code_grantc
Cs�dt��}ddi}tstd��zdtj|j||td�}|��|��}|�	d�|_
|�	d�|_|�	d�|_|�	d	�|_
|�	d
�|_Wn<tjk
r�}zt�d|j�d|����W5d
}~XYnXd
S)zm
        Initialize new Device Authorization Grant attempt by
        requesting a new device code.

        z
client_id=zcontent-typez!application/x-www-form-urlencoded�Rpython3-requests is not installed and is required for obtaining device auth token.)�data�headers�timeoutZ	user_codeZverification_uriZinterval�device_codeZverification_uri_completezNHTTP request failed while attempting to acquire the tokens.Error returned was � N)�DEVICE_AUTH_CLIENT_ID�REQUESTS_LOADED�	Exception�requests�postr	rZraise_for_status�json�getZ
_user_codeZ_verification_uri�	_intervalrrZ	HTTPError�status_code)rrr�resZresponse�er
r
rr9s,
��
z-DeviceAuthorizationClass._request_device_codec
Cs�tt|jd�}tstd��|jdkr�t�|j�ztt	j
|j|td�}|j
}|dkrjt�d�|�|���|dkr~t||j��|dkr�|��d	d
kr�t||j��Wqt	jjk
r�}zt�d|���W5d}~XYqXqdS)z�
        Continuously poll OIDC token endpoint until the user is successfully
        authenticated or an error occurs.

        )�
grant_type�	client_idrrN�rr��z$The SSO authentication is successful)r)�r*�error)Zauthorization_pendingZ	slow_downz)Error was found while posting a request: )�GRANT_TYPE_DEVICE_CODErrrrr�time�sleepr"rrr
rr#�logger�info�_set_token_datar �text�
exceptionsZRequestExceptionr+)r�
token_dataZcheck_auth_completionr#r%r
r
rrXs6�
�

��z1DeviceAuthorizationClass.poll_for_auth_completioncCsl|�d�|_t��t|�d�d�|_|�d�|_|�d�|_|jdkrRtj|_	nt��t|jd�|_	dS)a@
        Set the class attributes as per the input token_data received.
        In the future we will persist the token data in a local,
        in-memory keyring, to avoid visting the browser frequently.
        :param token_data: Token data containing access_token, refresh_token
        and their expiry etc.
        Zaccess_tokenZ
expires_in�Zseconds�
refresh_tokenZrefresh_expires_inrN)
r!rr�utcnowrr�_refresh_tokenZ_refresh_expires_in�max�_refresh_expires_at)rr4r
r
rr1zs�


�z(DeviceAuthorizationClass._set_token_datacCs2|��r|jS|��r$|��|jS|��|jS)zt
        Get the valid access_token at any given time.
        :return: Access_token
        :rtype: string
        )�is_access_token_validr�is_refresh_token_valid�_use_refresh_token_grantrrr
r
r�get_access_token�sz)DeviceAuthorizationClass.get_access_tokencCs$|jo"|jo"|jtdd�t��kS)z�
        Check the validity of access_token. We are considering it invalid 180
        sec. prior to it's exact expiry time.
        :return: True/False

        �r5)rrrrr7rr
r
rr;�s
��z.DeviceAuthorizationClass.is_access_token_validcCs$|jo"|jo"|jtdd�t��kS)z�
        Check the validity of refresh_token. We are considering it invalid
        180 sec. prior to it's exact expiry time.

        :return: True/False

        r?r5)r8r:rrr7rr
r
rr<�s
��z/DeviceAuthorizationClass.is_refresh_token_validNcCs�tstd��td|s|jn|d�}tj|j|td�}|jdkrN|�	|�
��nd|jdkr�d|�
�dkr�t�d	|j�d
|�
�d�d��|�
�ntd|j�d
|�
�d����dS)z�
        Fetch the new access_token and refresh_token using the existing
        refresh_token and persist it.
        :param refresh_token: optional param for refresh_token

        rr6)r'r&r6r(r)r*Zinvalidr+zAProblem while fetching the new tokens from refresh token grant - rz%. New Device code will be requested !zcSomething went wrong while using the Refresh token grant for fetching tokens: Returned status code z and error N)rrrr8rrr
rr#r1r r/Zwarningr)rr6Zrefresh_token_dataZrefresh_token_resr
r
rr=�s,���

�"
�z1DeviceAuthorizationClass._use_refresh_token_grant)N)
�__name__�
__module__�__qualname__�__doc__rrrrr1r>r;r<r=r
r
r
rrs
"r)Zloggingrr�ImportErrorr-rrZ
sos.utilitiesrrr,Z	getLoggerr/rr
r
r
r�<module>s



Youez - 2016 - github.com/yon3zu
LinuXploit