
    #	h7                          S SK Jr   S SKJr  S SKr\R                  " \	5      r
S rS r " S S\5      rg! \ a	    S SKJr   N=f = f! \ a	    S SKJr   NHf = f)	    )urlparse)cElementTree)ElementTreeNc                 J    SR                  U S/[        U 5      S-
  -  -   5      $ )N/z..   )joinlen)route_to_leafs    :/var/www/html/env/lib/python3.13/site-packages/msal/mex.py_xpath_of_rootr   )   s'    88MTFc-.@.B$CCDD    c                    UR                   " U 40 UD6nUR                  5          [        UR                  5      R	                  5       $ ! [
        R                   a-    [        R                  SUR                  UR                  5        e f = f)NzMalformed MEX document: %s, %s)
getraise_for_statusMextext&get_wstrust_username_password_endpointET
ParseErrorlogger	exceptionstatus_code)mex_endpointhttp_clientkwargsmex_resps       r   send_requestr   .   st    |6v6H8==!HHJJ== ,h.B.BHMM	Ss   "A AB	c                   h    \ rS rSrSSSSSSSSS	S
SSSSS.rSrSrS rS rS r	S r
S rS rS rSrg)r   9   z http://schemas.xmlsoap.org/wsdl/z9http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702z4http://schemas.xmlsoap.org/ws/2005/07/securitypolicyzRhttp://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsdz$http://www.w3.org/2005/08/addressingz3http://schemas.microsoft.com/ws/06/2004/policy/httpz'http://schemas.xmlsoap.org/wsdl/soap12/z,http://schemas.xmlsoap.org/ws/2004/09/policyz'http://www.w3.org/2003/05/soap-envelopez0http://docs.oasis-open.org/ws-sx/ws-trust/200512z%urn:oasis:names:tc:SAML:1.0:assertionz+http://schemas.xmlsoap.org/ws/2005/02/trust)wsdlspsp2005wsuwsawsa10httpsoap12wspswsttrustsamlwst2005z:http://docs.oasis-open.org/ws-sx/ws-trust/200512/RST/Issuez5http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issuec                 :    [         R                  " U5      U l        g )N)r   
fromstringdom)selfmex_documents     r   __init__Mex.__init__N   s    ==.r   c           
      :   SU R                   S   -  n[        U R                  R                  [	        U5      U R                   5       Vs/ s HA  nUR                  X R                   5      c  M!  SR                  UR                  U5      5      PMC     sn5      $ s  snf )Nz{%s}Idr$   z#{})NSsetr1   findallr   findformatr   )r2   components_to_leafbinding_xpathid_attrpolicys        r   _get_policy_idsMex._get_policy_idsQ   s    TWWU^+((**>:L+MtwwW@W{{=''2 6ELLG!45W@ A 	A @s   	 B-$Bc                 |    / SQnU R                  US5      n/ SQnUR                  U R                  US5      5        U$ )N)
wsp:Policywsp:ExactlyOnewsp:Allz"sp:SignedEncryptedSupportingTokensrC   zsp:UsernameTokenrC   zsp:WssUsernameToken10z.//sp:TransportBinding)rC   rD   rE   zsp2005:SignedSupportingTokensrC   zsp2005:UsernameTokenrC   zsp2005:WssUsernameToken10.//sp2005:TransportBinding)r@   update)r2   pathpoliciespath2005s       r   !_get_username_password_policy_ids%Mex._get_username_password_policy_idsX   sH    G ''.FGO 	,,X7STUr   c                 *    U R                  / SQS5      $ )N)rC   rD   rE   zhttp:NegotiateAuthenticationrF   )r@   )r2   s    r   _get_iwa_policy_idsMex._get_iwa_policy_idsc   s    ##W(* 	*r   c                    0 nU R                   R                  SU R                  5       H  nUR                  SU R                  5      R	                  S5      S:w  a  M4  UR                  SU R                  5      R	                  S5      nUR                  SU R                  5       H(  nUR	                  S5      US	.XR	                  S
5      '   M*     M     U$ )Nzwsdl:bindingzsoap12:binding	transportz$http://schemas.xmlsoap.org/soap/httpzwsdl:operation/soap12:operation
soapActionzwsp:PolicyReferenceURI)
policy_uriactionname)r1   r9   r7   r:   r   )r2   bindingsbindingrU   prs        r   _get_bindingsMex._get_bindingsh   s    xx''@G-tww7;;KH:;\\1477<<?C<M oo&;TWWE"$&&-61CV,- F A r   c                    / nU R                   R                  SU R                  5       H  nUR                  S5      R	                  S5      S   nUR                  U5      nU(       d  M@  US   U;   d  MK  UR                  SU R                  5      nUc  Ml  UR                  R                  5       R                  S5      (       d  M  UR                  UR                  US   S	.5        M     U$ )
Nzwsdl:service/wsdl:portrX   :rT   z%wsa10:EndpointReference/wsa10:Addresszhttps://rU   )addressrU   )
r1   r9   r7   r   splitr:   r   lower
startswithappend)r2   rW   
policy_ids	endpointsportbinding_namerX   r_   s           r   _get_endpointsMex._get_endpointsu   s    	HH$$%=twwGD88I.44S9"=Lll<0Gw7<0J>))$KTWWU&7<<+=+=+?+J+J:+V+V$$$+LLGH<MNP H r   c                     U R                  U R                  5       U R                  5       5      nU H  nUS   U R                  :X  d  M  Us  $    U(       a  US   $ S$ )zDReturns {"address": "https://...", "action": "the soapAction value"}rU   r   N)rh   rZ   rK   	ACTION_13)r2   re   es      r   r   *Mex.get_wstrust_username_password_endpoint   s\    ''""$d&L&L&NP	A{dnn,   )y|2d2r   )r1   N)__name__
__module____qualname____firstlineno__r7   rk   ACTION_2005r4   r@   rK   rN   rZ   rh   r   __static_attributes__ r   r   r   r   9   sf     3IHc57E;=6AC7@

B  MIIK/A	*

3r   r   )urllib.parser   ImportError	xml.etreer   r   r   logging	getLoggerrn   r   r   r   objectr   rt   r   r   <module>r{      sl   8"%,,  
		8	$E
O3& O37  "!"  ,+,s    7 A	 AA	AA