def test_get_jwt_string_header_success(faker): _jwt = faker.word() header = HttpAuthHeader(f'{JWT_HEADER} {_jwt}') try: jwt = get_jwt_string(header=header, jwt_header_prefix=JWT_HEADER) except Exception as err: pytest.fail(f'Unexpected exception: {err}') assert jwt == _jwt
def _authenticate(self, request: Request) -> 'BaseUserDataToken': """Authenticate user and returns its data.""" assert APP_JWT_AUTH in request.config_dict, 'No APP_JWT_AUTH in app' app_auth: JwtAuthApp = request.config_dict[APP_JWT_AUTH] auth_header = get_authorization_header(request) jwt_string = get_jwt_string( header=auth_header, jwt_header_prefix=app_auth.jwt_header_prefix, ) decoded_jwt = decode_token( jwt_string=jwt_string, public_key=app_auth.public_key, verify_exp=self._verify_expired, ) UserModel = app_auth.user_model # noqa: N806 try: return UserModel(**decoded_jwt) except ValidationError: # noqa: WPS329 raise jwt_auth_exceptions.AuthFailedInvalidClaims
def test_get_jwt_string_header_failed_spaces(): header = HttpAuthHeader(f'{JWT_HEADER} jwt also') with pytest.raises(jwt_exceptions.AuthFailedSpaces): get_jwt_string(header=header, jwt_header_prefix=JWT_HEADER)
def test_get_jwt_string_header_failed_invalid_header_prefix(): header = HttpAuthHeader(f'INV{JWT_HEADER} some_jwt') with pytest.raises(jwt_exceptions.AuthFailedInvalidHeaderPrefix): get_jwt_string(header=header, jwt_header_prefix=JWT_HEADER)
def test_get_jwt_string_header_failed_no_credentials(): header = HttpAuthHeader(f'{JWT_HEADER}') with pytest.raises(jwt_exceptions.AuthFailedNoJwt): get_jwt_string(header=header, jwt_header_prefix=JWT_HEADER)
def test_get_jwt_string_failed_no_header(): header = HttpAuthHeader('') with pytest.raises(jwt_exceptions.AuthFailedNoHeader): get_jwt_string(header=header, jwt_header_prefix=JWT_HEADER)