Exemple #1
0
 def test_parse_name_value(self):
     self.assertEqual(
         ('foo', 'bar'),
         util.parse_name_value('foo=bar')
     )
     with self.assertRaises(ValidationError):
         util.parse_name_value('abc')
Exemple #2
0
 def test_parse_name_value(self):
     self.assertEqual(
         ('foo', 'bar'),
         util.parse_name_value('foo=bar')
     )
     with self.assertRaises(ValidationError):
         util.parse_name_value('abc')
Exemple #3
0
    def run(self, values):
        if values.signing_key_option:
            log.warn("The --signing-key option is deprecated and will be removed " "in a future release.")

        signing_key = values.signing_key or values.signing_key_option
        if not signing_key:
            raise ValidationError("Signing key path was not specified")

        crypto = util.read_private_key(signing_key)
        exp = None
        if values.exp:
            exp = parse_timestamp(values.exp)
        nbf = None
        if values.nbf:
            nbf = parse_timestamp(values.nbf)
        customer = None
        if values.customer:
            customer = str(values.customer)

        claims = {}
        if values.claims:
            for name_value in values.claims:
                name, value = util.parse_name_value(name_value)
                validate_name_value(name, value)
                if name in claims:
                    raise ValidationError("Claim %s specified multiple times" % name)
                claims[name] = value

        jwt_string = make_jwt(crypto, exp=exp, nbf=nbf, customer=customer, claims=claims)
        log.debug(jwt_string)
        log.debug("Header: %s", json.dumps(get_header(jwt_string)))
        log.debug("Payload: %s", json.dumps(get_payload(jwt_string)))
        print(jwt_string)

        return 0
Exemple #4
0
    def run(self, values):
        crypto = util.read_private_key(values.signing_key)
        exp = None
        if values.exp:
            exp = parse_timestamp(values.exp)
        nbf = None
        if values.nbf:
            nbf = parse_timestamp(values.nbf)
        customer = None
        if values.customer:
            customer = str(values.customer)

        claims = {}
        if values.claims:
            for name_value in values.claims:
                name, value = util.parse_name_value(name_value)
                claims[name] = value

        jwt_string = make_jwt(
            crypto,
            exp=exp,
            nbf=nbf,
            customer=customer,
            claims=claims
        )
        log.debug(jwt_string)
        log.debug('Header: %s', json.dumps(get_header(jwt_string)))
        log.debug('Payload: %s', json.dumps(get_payload(jwt_string)))
        print(jwt_string)

        return 0
Exemple #5
0
    def run(self, values):
        crypto = util.read_private_key(values.signing_key)
        exp = None
        if values.exp:
            exp = parse_timestamp(values.exp)
        nbf = None
        if values.nbf:
            nbf = parse_timestamp(values.nbf)
        customer = None
        if values.customer:
            customer = str(values.customer)

        claims = {}
        if values.claims:
            for name_value in values.claims:
                name, value = util.parse_name_value(name_value)
                claims[name] = value

        jwt_string = make_jwt(crypto,
                              exp=exp,
                              nbf=nbf,
                              customer=customer,
                              claims=claims)
        log.debug(jwt_string)
        log.debug('Header: %s', json.dumps(get_header(jwt_string)))
        log.debug('Payload: %s', json.dumps(get_payload(jwt_string)))
        print(jwt_string)

        return 0
Exemple #6
0
def parse_tags(tag_strings):
    """ Parse the tags specified on the command line.

    :param: tag_strings a list of strings in KEY=VALUE format
    :return: the tags as a dictionary
    :raise: ValidationError if any of the tags are invalid
    """
    if not tag_strings:
        return {}

    tags = {}
    for s in tag_strings:
        key, value = util.parse_name_value(s)
        tags[key] = value

    return tags
Exemple #7
0
def parse_tags(tag_strings):
    """ Parse the tags specified on the command line.

    :param: tag_strings a list of strings in KEY=VALUE format
    :return: the tags as a dictionary
    :raise: ValidationError if any of the tags are invalid
    """
    if not tag_strings:
        return {}

    tags = {}
    for s in tag_strings:
        key, value = util.parse_name_value(s)
        tags[key] = value

    return tags