def process(self, context:Context, data:InternalData): """Set context.target_backend based on the target issuer""" target_issuer = context.get_decoration(Context.KEY_TARGET_ENTITYID) if not target_issuer: logger.info('skipping backend decision because no target_issuer was found') return super().process(context, data) target_backend = ( self.target_mapping.get(target_issuer) or self.default_backend ) report = { 'msg': 'decided target backend by target issuer', 'target_issuer': target_issuer, 'target_backend': target_backend, } logger.info(report) context.target_backend = target_backend return super().process(context, data)