22Authorization validators to use in the mock query API.
33"""
44
5- from __future__ import annotations
6-
75import logging
8- from typing import TYPE_CHECKING
6+ from collections .abc import Mapping
7+
8+ from beartype import beartype
99
1010from mock_vws ._database_matchers import get_database_matching_client_keys
1111from mock_vws ._query_validators .exceptions import (
1212 AuthenticationFailureError ,
1313 AuthHeaderMissingError ,
1414 MalformedAuthHeaderError ,
1515)
16+ from mock_vws .database import VuforiaDatabase
1617
1718_LOGGER = logging .getLogger (name = __name__ )
1819
19- if TYPE_CHECKING :
20- from mock_vws .database import VuforiaDatabase
21-
2220
23- def validate_auth_header_exists (* , request_headers : dict [str , str ]) -> None :
21+ @beartype
22+ def validate_auth_header_exists (* , request_headers : Mapping [str , str ]) -> None :
2423 """
2524 Validate that there is an authorization header given to the query endpoint.
2625
@@ -37,9 +36,10 @@ def validate_auth_header_exists(*, request_headers: dict[str, str]) -> None:
3736 raise AuthHeaderMissingError
3837
3938
39+ @beartype
4040def validate_auth_header_number_of_parts (
4141 * ,
42- request_headers : dict [str , str ],
42+ request_headers : Mapping [str , str ],
4343) -> None :
4444 """
4545 Validate the authorization header includes text either side of a space.
@@ -61,9 +61,10 @@ def validate_auth_header_number_of_parts(
6161 raise MalformedAuthHeaderError
6262
6363
64+ @beartype
6465def validate_client_key_exists (
6566 * ,
66- request_headers : dict [str , str ],
67+ request_headers : Mapping [str , str ],
6768 databases : set [VuforiaDatabase ],
6869) -> None :
6970 """
@@ -87,8 +88,9 @@ def validate_client_key_exists(
8788 raise AuthenticationFailureError
8889
8990
91+ @beartype
9092def validate_auth_header_has_signature (
91- request_headers : dict [str , str ],
93+ request_headers : Mapping [str , str ],
9294) -> None :
9395 """
9496 Validate the authorization header includes a signature.
@@ -107,10 +109,11 @@ def validate_auth_header_has_signature(
107109 raise MalformedAuthHeaderError
108110
109111
112+ @beartype
110113def validate_authorization (
111114 * ,
112115 request_path : str ,
113- request_headers : dict [str , str ],
116+ request_headers : Mapping [str , str ],
114117 request_body : bytes ,
115118 request_method : str ,
116119 databases : set [VuforiaDatabase ],
0 commit comments