Beispiel #1
0
    def test_convert_methods_to_integer(self):
        auth_methods = ['password', 'token', 'totp']
        self.config_fixture.config(group='auth', methods=auth_methods)

        method_integer = plugins.convert_method_list_to_integer(['password'])
        self.assertEqual(1, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'token']
        )
        self.assertEqual(3, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'totp']
        )
        self.assertEqual(5, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['token', 'totp']
        )
        self.assertEqual(6, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'token', 'totp']
        )
        self.assertEqual(7, method_integer)
Beispiel #2
0
 def assemble(cls, user_id, methods, project_id, domain_id, expires_at,
              audit_ids, trust_id, federated_info, access_token_id):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(cls.random_urlsafe_str_to_bytes, audit_ids))
     return (b_user_id, methods, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, scope_id, expires_at, audit_ids,
                 federated_info):
        """Assemble the project-scoped payload of a federated token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param scope_id: ID of the project or domain ID to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :param federated_info: dictionary containing the identity provider ID,
                               protocol ID, federated domain ID and group IDs
        :returns: the payload of a federated token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_scope_id = cls.attempt_convert_uuid_hex_to_bytes(scope_id)
        b_group_ids = list(map(cls.pack_group_id, federated_info['group_ids']))
        b_idp_id = cls.attempt_convert_uuid_hex_to_bytes(
            federated_info['idp_id'])
        protocol_id = federated_info['protocol_id']
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                               audit_ids))

        return (b_user_id, methods, b_scope_id, b_group_ids, b_idp_id,
                protocol_id, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, scope_id, expires_at, audit_ids,
                 federated_info):
        """Assemble the project-scoped payload of a federated token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param scope_id: ID of the project or domain ID to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :param federated_info: dictionary containing the identity provider ID,
                               protocol ID, federated domain ID and group IDs
        :returns: the payload of a federated token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_scope_id = cls.attempt_convert_uuid_hex_to_bytes(scope_id)
        b_group_ids = list(map(cls.pack_group_id,
                               federated_info['group_ids']))
        b_idp_id = cls.attempt_convert_uuid_hex_to_bytes(
            federated_info['idp_id'])
        protocol_id = federated_info['protocol_id']
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                               audit_ids))

        return (b_user_id, methods, b_scope_id, b_group_ids, b_idp_id,
                protocol_id, expires_at_int, b_audit_ids)
Beispiel #5
0
 def assemble(cls, user_id, methods, project_id, domain_id, expires_at, audit_ids, trust_id, federated_info):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     b_project_id = cls.attempt_convert_uuid_hex_to_bytes(project_id)
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes, audit_ids))
     return (b_user_id, methods, b_project_id, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, domain_id, expires_at, audit_ids):
        """Assemble the payload of a domain-scoped token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param domain_id: ID of the domain to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :returns: the payload of a domain-scoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        try:
            b_domain_id = cls.convert_uuid_hex_to_bytes(domain_id)
        except ValueError:
            # the default domain ID is configurable, and probably isn't a UUID
            if domain_id == CONF.identity.default_domain_id:
                b_domain_id = domain_id
            else:
                raise
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                           audit_ids))
        return (b_user_id, methods, b_domain_id, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, domain_id, expires_at, audit_ids):
        """Assemble the payload of a domain-scoped token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param domain_id: ID of the domain to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :returns: the payload of a domain-scoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        try:
            b_domain_id = cls.convert_uuid_hex_to_bytes(domain_id)
        except ValueError:
            # the default domain ID is configurable, and probably isn't a UUID
            if domain_id == CONF.identity.default_domain_id:
                b_domain_id = domain_id
            else:
                raise
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                               audit_ids))
        return (b_user_id, methods, b_domain_id, expires_at_int, b_audit_ids)
Beispiel #8
0
 def assemble(cls, user_id, methods, system, project_id, domain_id,
              expires_at, audit_ids, trust_id, federated_group_ids,
              identity_provider_id, protocol_id, access_token_id,
              app_cred_id):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(cls.random_urlsafe_str_to_bytes,
                        audit_ids))
     return (b_user_id, methods, system, expires_at_int, b_audit_ids)
Beispiel #9
0
    def assemble(cls, user_id, methods, project_id, domain_id, expires_at, audit_ids, trust_id, federated_info):
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_scope_id = cls.attempt_convert_uuid_hex_to_bytes(project_id or domain_id)
        b_group_ids = list(map(cls.pack_group_id, federated_info["group_ids"]))
        b_idp_id = cls.attempt_convert_uuid_hex_to_bytes(federated_info["idp_id"])
        protocol_id = federated_info["protocol_id"]
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes, audit_ids))

        return (b_user_id, methods, b_scope_id, b_group_ids, b_idp_id, protocol_id, expires_at_int, b_audit_ids)
Beispiel #10
0
 def assemble(cls, user_id, methods, system, project_id, domain_id,
              expires_at, audit_ids, trust_id, federated_group_ids,
              identity_provider_id, protocol_id, access_token_id,
              app_cred_id):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     b_project_id = cls.attempt_convert_uuid_hex_to_bytes(project_id)
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(cls.random_urlsafe_str_to_bytes, audit_ids))
     b_app_cred_id = cls.attempt_convert_uuid_hex_to_bytes(app_cred_id)
     return (b_user_id, methods, b_project_id, expires_at_int, b_audit_ids,
             b_app_cred_id)
Beispiel #11
0
    def assemble(cls, user_id, methods, expires_at):
        """Assemble the payload of a receipt.

        :param user_id: identifier of the user in the receipt request
        :param methods: list of authentication methods used
        :param expires_at: datetime of the receipt's expiration
        :returns: the payload of a receipt

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        return (b_user_id, methods, expires_at_int)
Beispiel #12
0
    def assemble(cls, user_id, methods, expires_at):
        """Assemble the payload of a receipt.

        :param user_id: identifier of the user in the receipt request
        :param methods: list of authentication methods used
        :param expires_at: datetime of the receipt's expiration
        :returns: the payload of a receipt

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        return (b_user_id, methods, expires_at_int)
Beispiel #13
0
    def test_convert_methods_to_integer(self):
        auth_methods = ['password', 'token', 'totp']
        self.config_fixture.config(group='auth', methods=auth_methods)

        method_integer = plugins.convert_method_list_to_integer(['password'])
        self.assertEqual(1, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'token'])
        self.assertEqual(3, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'totp'])
        self.assertEqual(5, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['token', 'totp'])
        self.assertEqual(6, method_integer)

        method_integer = plugins.convert_method_list_to_integer(
            ['password', 'token', 'totp'])
        self.assertEqual(7, method_integer)
Beispiel #14
0
 def assemble(cls, user_id, methods, project_id, domain_id, expires_at, audit_ids, trust_id, federated_info):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     try:
         b_domain_id = cls.convert_uuid_hex_to_bytes(domain_id)
     except ValueError:
         # the default domain ID is configurable, and probably isn't a UUID
         if domain_id == CONF.identity.default_domain_id:
             b_domain_id = domain_id
         else:
             raise
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes, audit_ids))
     return (b_user_id, methods, b_domain_id, expires_at_int, b_audit_ids)
Beispiel #15
0
    def assemble(cls, user_id, methods, project_id, domain_id, expires_at,
                 audit_ids, trust_id, federated_info):
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_group_ids = list(map(cls.pack_group_id, federated_info['group_ids']))
        b_idp_id = cls.attempt_convert_uuid_hex_to_bytes(
            federated_info['idp_id'])
        protocol_id = federated_info['protocol_id']
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                               audit_ids))

        return (b_user_id, methods, b_group_ids, b_idp_id, protocol_id,
                expires_at_int, b_audit_ids)
Beispiel #16
0
 def assemble(cls, user_id, methods, project_id, domain_id, expires_at,
              audit_ids, trust_id, federated_info, access_token_id):
     b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
     methods = auth_plugins.convert_method_list_to_integer(methods)
     try:
         b_domain_id = cls.convert_uuid_hex_to_bytes(domain_id)
     except ValueError:
         # the default domain ID is configurable, and probably isn't a UUID
         if domain_id == CONF.identity.default_domain_id:
             b_domain_id = domain_id
         else:
             raise
     expires_at_int = cls._convert_time_string_to_float(expires_at)
     b_audit_ids = list(map(cls.random_urlsafe_str_to_bytes, audit_ids))
     return (b_user_id, methods, b_domain_id, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, expires_at, audit_ids):
        """Assemble the payload of an unscoped token.

        :param user_id: identifier of the user in the token request
        :param methods: list of authentication methods used
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :returns: the payload of an unscoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                           audit_ids))
        return (b_user_id, methods, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, expires_at, audit_ids):
        """Assemble the payload of an unscoped token.

        :param user_id: identifier of the user in the token request
        :param methods: list of authentication methods used
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :returns: the payload of an unscoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        expires_at_int = cls._convert_time_string_to_float(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                               audit_ids))
        return (b_user_id, methods, expires_at_int, b_audit_ids)
    def assemble(cls, user_id, methods, project_id, expires_at, audit_ids,
                 trust_id):
        """Assemble the payload of a trust-scoped token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param project_id: ID of the project to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :param trust_id: ID of the trust in effect
        :returns: the payload of a trust-scoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_project_id = cls.attempt_convert_uuid_hex_to_bytes(project_id)
        b_trust_id = cls.convert_uuid_hex_to_bytes(trust_id)
        expires_at_int = cls._convert_time_string_to_int(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                           audit_ids))

        return (b_user_id, methods, b_project_id, expires_at_int, b_audit_ids,
                b_trust_id)
Beispiel #20
0
    def assemble(cls, user_id, methods, project_id, expires_at, audit_ids,
                 trust_id):
        """Assemble the payload of a trust-scoped token.

        :param user_id: ID of the user in the token request
        :param methods: list of authentication methods used
        :param project_id: ID of the project to scope to
        :param expires_at: datetime of the token's expiration
        :param audit_ids: list of the token's audit IDs
        :param trust_id: ID of the trust in effect
        :returns: the payload of a trust-scoped token

        """
        b_user_id = cls.attempt_convert_uuid_hex_to_bytes(user_id)
        methods = auth_plugins.convert_method_list_to_integer(methods)
        b_project_id = cls.attempt_convert_uuid_hex_to_bytes(project_id)
        b_trust_id = cls.convert_uuid_hex_to_bytes(trust_id)
        expires_at_int = cls._convert_time_string_to_int(expires_at)
        b_audit_ids = list(map(provider.random_urlsafe_str_to_bytes,
                           audit_ids))

        return (b_user_id, methods, b_project_id, expires_at_int, b_audit_ids,
                b_trust_id)