diff options
author | qrort <qrort@yandex-team.com> | 2022-11-30 23:47:12 +0300 |
---|---|---|
committer | qrort <qrort@yandex-team.com> | 2022-11-30 23:47:12 +0300 |
commit | 22f8ae0e3f5d68b92aecccdf96c1d841a0334311 (patch) | |
tree | bffa27765faf54126ad44bcafa89fadecb7a73d7 /library/python/tvmauth/examples/service_using_tvm_client/serv.py | |
parent | 332b99e2173f0425444abb759eebcb2fafaa9209 (diff) | |
download | ydb-22f8ae0e3f5d68b92aecccdf96c1d841a0334311.tar.gz |
validate canons without yatest_common
Diffstat (limited to 'library/python/tvmauth/examples/service_using_tvm_client/serv.py')
-rw-r--r-- | library/python/tvmauth/examples/service_using_tvm_client/serv.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/library/python/tvmauth/examples/service_using_tvm_client/serv.py b/library/python/tvmauth/examples/service_using_tvm_client/serv.py new file mode 100644 index 0000000000..4295e55799 --- /dev/null +++ b/library/python/tvmauth/examples/service_using_tvm_client/serv.py @@ -0,0 +1,40 @@ +import requests +import tvmauth +import tvmauth.exceptions + + +class SomeService: + def __init__(self, **kwargs): + self._client = tvmauth.TvmClient( + tvmauth.TvmApiClientSettings( + self_tvm_id=11, + enable_service_ticket_checking=True, + enable_user_ticket_checking=tvmauth.BlackboxEnv.Test, + self_secret="AAAAAAAAAAAAAAAAAAAAAA", + dsts={"bb": 224, "datasync": 2000060}, + ) + ) + + self._allowed_consumers = kwargs['acl'] # array + + def stop(self): + self._client.stop() + + # Processing of request is here + def handle_request(self, **kwargs): + try: + st = self._client.check_service_ticket(kwargs['X-Ya-Service-Ticket']) + ut = self._client.check_user_ticket(kwargs['X-Ya-User-Ticket']) + + if st.src not in self._allowed_consumers: + raise Exception("Access denied (service)") + + if 'allow_to_get_secret_data' not in ut.scopes: + raise Exception("Access denied (user)") + + return requests.get( + 'my_backend_request', + headers={'X-Ya-Service-Ticket': self._client.get_service_ticket_for("datasync")}, + ).content + except tvmauth.exceptions.TvmException: + raise Exception("Error") |