
    ~h                     H    d dl mZ d dlmZ d dlmZ d dlmZ  G d d      Zy)    )Optional)add_params_to_uri)	deprecate)	BaseGrantc                   *    e Zd Zd Zd Zdee   fdZy)IssuerParameterc                     t        |t              r*t        dd       |j                  d| j                         y |j                  d| j                         y )NzIssueParameter should be used as an authorization server extension with 'authorization_server.register_extension(IssueParameter())'.z1.8)versionafter_authorization_response#after_create_authorization_response)
isinstancer   r   register_hookadd_issuer_parameter)selfauthorization_servers     \/opt/mcp/mcp-sentiment/venv/lib/python3.12/site-packages/authlib/oauth2/rfc9207/parameter.py__call__zIssuerParameter.__call__	   sV    *I6 W !...)) !..5))    c                     | j                         r;|j                  r.t        |j                  d| j                         i      }||_        y y y )Niss)
get_issuerlocationr   )r   r   responsenew_locations       r   r   z$IssuerParameter.add_issuer_parameter   sI    ??!2!2 -!!E4??+<#=L !-H "3r   returnc                      y)zReturn the issuer URL.
        Developers MAY implement this method if they want to support :rfc:`RFC9207 <9207>`::

            def get_issuer(self) -> str:
                return "https://auth.example.org"
        N )r   s    r   r   zIssuerParameter.get_issuer&   s     r   N)__name__
__module____qualname__r   r   r   strr   r   r   r   r   r      s    "
-HSM r   r   N)	typingr   authlib.common.urlsr   authlib.deprecater   authlib.oauth2.rfc6749.grantsr   r   r   r   r   <module>r&      s     1 ' 3% %r   