Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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)
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
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)