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)
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, 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, 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)
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)
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)
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)
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)
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)
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)
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, 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)