def test_is_valid_succeeds_missing_ref_p_end_date(self):
     jwt = {
         "user_id": "1",
         "form_type": "a",
         "collection_exercise_sid": "test-sid",
         "eq_id": "2",
         "period_id": "3",
         "period_str": "2016-01-01",
         "ref_p_start_date": "2016-02-02",
         "ru_ref": "2016-04-04",
         "ru_name": "Apple",
         "return_by": "2016-07-07"
     }
     valid, _ = is_valid_metadata(jwt)
     self.assertTrue(valid)
 def test_is_valid_fails_missing_form_type(self):
     jwt = {
         "user_id": "1",
         "collection_exercise_sid": "test-sid",
         "eq_id": "2",
         "period_id": "3",
         "period_str": "2016-01-01",
         "ref_p_start_date": "2016-02-02",
         "ref_p_end_date": "2016-03-03",
         "ru_ref": "2016-04-04",
         "ru_name": "Apple",
         "return_by": "2016-07-07"
     }
     valid, field = is_valid_metadata(jwt)
     self.assertFalse(valid)
     self.assertEqual("form_type", field)
 def test_is_valid_does_not_fail_missing_optional_value_in_token(self):
     # tx_id, trad_as and employment_date are optional and might not be in the token
     jwt = {
         "user_id": "1",
         "form_type": "a",
         "collection_exercise_sid": "test-sid",
         "eq_id": "2",
         "period_id": "3",
         "period_str": "2016-01-01",
         "ref_p_start_date": "2016-02-02",
         "ref_p_end_date": "2016-03-03",
         "ru_ref": "2016-04-04",
         "ru_name": "Apple",
         "return_by": "2016-07-07"
     }
     valid, _ = is_valid_metadata(jwt)
     self.assertTrue(valid)
 def test_is_valid_fails_invalid_return_by(self):
     jwt = {
         "user_id": "1",
         "form_type": "a",
         "collection_exercise_sid": "test-sid",
         "eq_id": "2",
         "period_id": "3",
         "period_str": "2016-01-01",
         "ref_p_start_date": "2016-12-31",
         "ref_p_end_date": "2016-03-31",
         "ru_ref": "2016-04-04",
         "ru_name": "Apple",
         "return_by": "2016-09-31"
     }
     valid, _ = is_valid_metadata(jwt)
     self.assertTrue(valid)
     with self.assertRaises(InvalidTokenException) as ite:
         parse_metadata(jwt)
     self.assertIn("incorrect data in token", ite.exception.value)
 def test_malformed_tx_id(self):
     jwt = {
         "user_id": "1",
         "form_type": "a",
         "collection_exercise_sid": "test-sid",
         "eq_id": "2",
         "period_id": "3",
         "period_str": "2016-01-01",
         "ref_p_start_date": "2016-02-02",
         "ref_p_end_date": "2016-03-03",
         "ru_ref": "2016-04-04",
         "ru_name": "Apple",
         "return_by": "2016-07-07",
         # one character short
         "tx_id": "83a3db82-bea7-403c-a411-6357ff70f2f"
     }
     valid, _ = is_valid_metadata(jwt)
     self.assertTrue(valid)
     with self.assertRaises(InvalidTokenException) as ite:
         parse_metadata(jwt)
     self.assertIn("incorrect data in token", ite.exception.value)
Beispiel #6
0
def decrypt_token(encrypted_token):
    logger.debug("decrypting token")
    if encrypted_token is None:
        raise NoTokenException("Please provide a token")

    decoder = JWTDecryptor(
        current_app.config['EQ_USER_AUTHENTICATION_SR_PRIVATE_KEY'],
        current_app.config['EQ_USER_AUTHENTICATION_SR_PRIVATE_KEY_PASSWORD'],
        current_app.config['EQ_USER_AUTHENTICATION_RRM_PUBLIC_KEY'],
    )

    decrypted_token = decoder.decrypt_jwt_token(
        encrypted_token,
        current_app.config['EQ_JWT_LEEWAY_IN_SECONDS'],
    )

    valid, field = is_valid_metadata(decrypted_token)
    if not valid:
        raise InvalidTokenException("Missing value {}".format(field))

    logger.debug("token decrypted")
    return decrypted_token
 def test_is_valid(self):
     with self.application.test_request_context():
         self.assertTrue(is_valid_metadata(self.jwt))