You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法删除Consent Purposes:WSO2 IS v5.10.0技术问题求助

WSO2 IS v5.10.0 同意管理清理问题解决方案

问题场景

自行创建的Consent Purpose无法删除,返回错误:

{"code":"CM_00079","message":"错误请求","description":"用途ID:29关联了一个或多个同意凭证。"}

已删除数据库中所有用户,但通过REST API查询Consents时仍显示有用户记录(数据库用户表实际为空)。需解决:

  • 删除已不在数据库但仍关联Consent的用户记录
  • 清理所有Consent相关数据
  • 撤销所有Consent
  • 排查遗漏步骤

一、先解决CM_00079错误:清理关联的同意凭证

删除Purpose失败的核心原因是该Purpose关联了同意凭证(receipts),需先清理这些关联:

  • 批量撤销所有同意记录:调用Consent管理API的撤销接口,对所有查询到的Consent执行撤销。
    1. 先调用/api/identity/consent-mgt/v1.0/consents获取所有同意列表,拿到所有consentId
    2. 对每个consentId,调用POST /api/identity/consent-mgt/v1.0/consents/{consentId}/revoke执行撤销
  • 数据库直接清理(API操作无效时用):
    1. 连接WSO2 IS的数据库(默认H2,生产环境多为MySQL/PostgreSQL等)
    2. 删除关联目标Purpose的同意凭证:
      DELETE FROM CONSENT_RECEIPT WHERE PURPOSE_ID = 29;
      
    3. 同步删除关联的凭证数据:
      DELETE FROM CONSENT_RECEIPT_DATA WHERE RECEIPT_ID IN (SELECT ID FROM CONSENT_RECEIPT WHERE PURPOSE_ID = 29);
      

二、清理幽灵用户关联的Consent记录

数据库用户已删除但API仍显示关联,是因为Consent相关表未同步清理:
执行以下SQL清理无有效用户关联的Consent数据:

  1. 删除用户不存在的Consent记录:
    DELETE FROM CONSENT WHERE USER_ID NOT IN (SELECT USER_ID FROM UM_USER);
    
  2. 同步删除关联的同意凭证:
    DELETE FROM CONSENT_RECEIPT WHERE CONSENT_ID IN (SELECT ID FROM CONSENT WHERE USER_ID NOT IN (SELECT USER_ID FROM UM_USER));
    
  3. 清理孤立的凭证数据:
    DELETE FROM CONSENT_RECEIPT_DATA WHERE RECEIPT_ID NOT IN (SELECT ID FROM CONSENT_RECEIPT);
    

三、彻底清空所有Consent相关数据

如果需要完全清理所有Consent数据,按以下顺序操作:

  1. 先通过API撤销所有Consent(或直接执行数据库删除)
  2. 按顺序执行SQL清空表数据:
    DELETE FROM CONSENT_RECEIPT_DATA;
    DELETE FROM CONSENT_RECEIPT;
    DELETE FROM CONSENT;
    
  3. 最后删除目标Purpose:
    DELETE FROM PURPOSE WHERE ID = 29;
    

注意:操作前确认该Purpose未关联其他未清理的资源

四、排查遗漏的步骤

你之前遗漏的核心操作:

  • 直接删除数据库用户后,未同步清理Consent、Consent Receipt等关联表的残留数据,导致API读取到无效关联
  • 删除Purpose前未先撤销或删除关联的同意凭证,触发了CM_00079依赖错误

内容的提问来源于stack exchange,提问作者FrankP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 06:25:33