所有错误响应都是 RFC 9457 problem details:
{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "你没有执行此操作的权限",
"code": "GF-SECURITY-002",
"requestId": "0f6c1a…"
}
code 是稳定的,可以在程序里判断;detail 按请求的 Accept-Language 本地化,只用于显示。校验错误还带有 errors 数组,指出具体字段。下表由源代码中的错误码枚举在构建文档时生成。
| 错误码 |
HTTP |
含义 |
GF-AUTHZ-001 |
409 |
应用编码“{0}”已被使用。 |
GF-AUTHZ-002 |
409 |
GrantForge 内置的应用不能删除。 |
GF-AUTHZ-003 |
409 |
请先删除该应用下的资源。 |
GF-AUTHZ-010 |
409 |
资源编码“{0}”在该应用中已被使用。 |
GF-AUTHZ-011 |
409 |
该类型的资源不能放在这里:按钮和标签页属于页面,字段属于数据实体。 |
GF-AUTHZ-012 |
409 |
资源不能移动到自身或其下级之下。 |
GF-AUTHZ-013 |
409 |
资源最多嵌套 {0} 层。 |
GF-AUTHZ-014 |
409 |
请先删除或移走它下面的资源。 |
GF-AUTHZ-015 |
409 |
GrantForge 内置的资源不能删除,也不能修改编码。 |
GF-AUTHZ-016 |
409 |
有 {0} 个其他资源依赖它,请先移除这些依赖。 |
GF-AUTHZ-017 |
409 |
该资源仍被角色授权 {0} 次,请先撤销这些授权。 |
GF-AUTHZ-020 |
409 |
这两个资源之间不能建立依赖:菜单、页面、标签页和按钮只能依赖同一应用中的接口、页面、标签页或按钮。 |
GF-AUTHZ-021 |
409 |
这条依赖会形成循环:对方已经(间接)依赖当前资源。 |
GF-AUTHZ-022 |
409 |
已经存在这条依赖。 |
GF-AUTHZ-023 |
409 |
GrantForge 内置声明的依赖不能手工移除。 |
GF-AUTHZ-030 |
409 |
角色编码“{0}”已被使用。 |
GF-AUTHZ-031 |
409 |
系统角色不能修改、停用或删除;如需调整,请复制后修改副本。 |
GF-AUTHZ-032 |
409 |
已经拥有该角色。 |
GF-AUTHZ-033 |
400 |
有效期的结束时间必须晚于开始时间。 |
GF-AUTHZ-034 |
403 |
你不能分配这个角色。 |
GF-AUTHZ-035 |
409 |
系统账号的系统角色不能移除。 |
GF-AUTHZ-036 |
403 |
该角色包含你自己没有的权限,你不能分配它。 |
GF-AUTHZ-037 |
409 |
继承“{0}”会形成循环继承。 |
GF-AUTHZ-040 |
409 |
这类资源不能直接授权;模块会根据其下已授权的资源自动可见。 |
GF-AUTHZ-041 |
403 |
平台资源只能在平台租户中授权。 |
GF-AUTHZ-042 |
403 |
你只能授予自己拥有的权限,你没有“{0}”。 |
GF-AUTHZ-050 |
400 |
数据策略的部分内容不正确。 |
GF-AUTHZ-051 |
400 |
字段策略的部分内容不正确。 |
GF-AUTHZ-052 |
400 |
应用声明的部分数据实体不正确。 |
GF-AUTHZ-060 |
400 |
客户端的部分设置不正确。 |
GF-AUTHZ-070 |
400 |
职责分离约束无效:{0} |
GF-AUTHZ-071 |
409 |
编码 {0} 已被其他职责分离约束使用。 |
GF-AUTHZ-072 |
409 |
此操作会使 {0} 同时拥有角色 {1},违反职责分离约束“{2}”。 |
GF-AUTHZ-080 |
400 |
该角色不可申请。 |
GF-AUTHZ-081 |
409 |
你已拥有角色 {0}。 |
GF-AUTHZ-082 |
409 |
你已申请角色 {0},请等待审批结果。 |
GF-AUTHZ-083 |
400 |
申请无效:{0} |
GF-AUTHZ-084 |
409 |
该申请已处理({0})。 |
GF-AUTHZ-085 |
403 |
不能审批自己的申请。 |
GF-AUTHZ-090 |
400 |
权限复核无效:{0} |
GF-AUTHZ-091 |
409 |
该复核已有进行中的一轮。 |
GF-AUTHZ-092 |
409 |
该轮复核已结束({0})。 |
GF-AUTHZ-093 |
403 |
不能复核自己的权限:你通过 {0} 获得该角色。 |
| 错误码 |
HTTP |
含义 |
GF-COMMON-400 |
400 |
请求参数不正确。 |
GF-COMMON-401 |
401 |
请先登录。 |
GF-COMMON-403 |
403 |
你没有执行此操作的权限。 |
GF-COMMON-404 |
404 |
请求的资源不存在。 |
GF-COMMON-405 |
405 |
该资源不支持此操作。 |
GF-COMMON-409 |
409 |
请求与当前数据状态冲突,请刷新后重试。 |
GF-COMMON-415 |
415 |
不支持该请求格式。 |
GF-COMMON-500 |
500 |
服务发生意外错误,反馈问题时请提供请求编号。 |
| 错误码 |
HTTP |
含义 |
GF-FIELD-001 |
403 |
无权修改其中的部分字段。 |
| 错误码 |
HTTP |
含义 |
GF-IDENTITY-001 |
409 |
系统已完成初始化。 |
GF-IDENTITY-002 |
403 |
初始化令牌无效,请使用服务端最近一次日志中输出的令牌。 |
GF-IDENTITY-010 |
400 |
密码长度不能少于 {0} 个字符。 |
GF-IDENTITY-011 |
400 |
密码长度不能超过 {0} 个字符。 |
GF-IDENTITY-012 |
400 |
密码不能包含用户名。 |
GF-IDENTITY-013 |
400 |
密码需至少包含小写字母、大写字母、数字、其他字符中的 {0} 类。 |
GF-IDENTITY-014 |
400 |
新密码不能与最近 {0} 次使用过的密码相同。 |
GF-IDENTITY-015 |
400 |
当前密码不正确。 |
GF-IDENTITY-016 |
403 |
请先修改密码后再继续操作。 |
GF-IDENTITY-020 |
401 |
用户名或密码错误。 |
GF-IDENTITY-021 |
401 |
登录失败次数过多,账号已被临时锁定,请稍后再试。 |
GF-IDENTITY-022 |
401 |
账号已被禁用,请联系管理员。 |
GF-IDENTITY-023 |
401 |
所属组织已被停用,请联系管理员。 |
GF-IDENTITY-024 |
401 |
账号已被管理员锁定,请联系管理员。 |
GF-IDENTITY-030 |
409 |
租户编码“{0}”已被使用。 |
GF-IDENTITY-031 |
409 |
用户名“{0}”已被使用。 |
GF-IDENTITY-032 |
409 |
平台租户不能停用。 |
GF-IDENTITY-040 |
409 |
部门编码“{0}”已被使用。 |
GF-IDENTITY-041 |
409 |
部门不能移动到自身或其下级部门之下。 |
GF-IDENTITY-042 |
409 |
部门层级最多 {0} 层。 |
GF-IDENTITY-043 |
409 |
请先移走或删除其下级部门。 |
GF-IDENTITY-044 |
409 |
请先将该部门的成员调整到其他部门。 |
GF-IDENTITY-050 |
409 |
系统账号和你自己的账号不能被禁用、锁定或删除。 |
GF-IDENTITY-060 |
403 |
暂不开放注册,请联系管理员为你创建账号。 |
GF-IDENTITY-070 |
409 |
用户组编码“{0}”已被使用。 |
GF-IDENTITY-080 |
409 |
岗位编码“{0}”已被使用。 |
GF-IDENTITY-090 |
400 |
文件不是有效的 CSV(第 {0} 行附近)。 |
GF-IDENTITY-091 |
400 |
文件缺少必需的列“{0}”。 |
GF-IDENTITY-092 |
400 |
一次最多导入 {0} 行。 |
GF-IDENTITY-093 |
400 |
文件中没有数据行。 |
GF-IDENTITY-094 |
400 |
“{0}”在文件中重复出现。 |
GF-IDENTITY-095 |
400 |
找不到部门“{0}”。 |
GF-IDENTITY-096 |
400 |
找不到岗位“{0}”。 |
GF-IDENTITY-097 |
400 |
“{0}”列的值无效。 |
GF-IDENTITY-098 |
400 |
“{0}”列不能为空。 |
GF-IDENTITY-100 |
400 |
验证码错误、已过期或已使用。 |
GF-IDENTITY-101 |
409 |
两步验证已开启。如需更换验证器,请先关闭。 |
GF-IDENTITY-102 |
409 |
请先设置验证器。 |
GF-IDENTITY-103 |
409 |
该账号未开启两步验证。 |
GF-IDENTITY-104 |
401 |
登录超时,请重新输入用户名和密码。 |
GF-IDENTITY-105 |
401 |
请输入验证器应用中的验证码以完成登录。 |
GF-IDENTITY-110 |
409 |
编码 {0} 已被其他身份源使用。 |
GF-IDENTITY-111 |
400 |
身份源配置无效:{0} |
GF-IDENTITY-112 |
422 |
无法连接身份源,或身份源拒绝了配置的凭据:{0} |
GF-IDENTITY-113 |
409 |
有 {0} 个账号通过该身份源登录,请改为停用。 |
GF-IDENTITY-114 |
409 |
只有 LDAP 目录可以同步。 |
GF-IDENTITY-115 |
409 |
该账号通过身份源登录,请在身份源中修改密码。 |
GF-IDENTITY-116 |
409 |
本地已存在名为 {0} 的账号,需管理员先改名或删除。 |
GF-IDENTITY-117 |
403 |
你在这里还没有账号,请联系管理员开通。 |
GF-IDENTITY-118 |
401 |
通过身份提供方登录失败:{0} |
| 错误码 |
HTTP |
含义 |
GF-SECURITY-001 |
403 |
页面已过期,请刷新后重试。 |
GF-SECURITY-002 |
403 |
你没有执行此操作的权限。 |
GF-SECURITY-003 |
403 |
该接口回答的是已登录用户的权限,请使用为用户签发的令牌。 |
GF-SECURITY-004 |
403 |
令牌缺少此接口所需的范围(scope)。 |
GF-SECURITY-005 |
403 |
该接口只接受客户端以自身身份获取的令牌。 |
GF-SECURITY-006 |
403 |
请输入验证器应用中的验证码以确认此操作。 |
GF-SECURITY-007 |
403 |
请先在账号设置中开启两步验证,再执行此操作。 |
| 错误码 |
HTTP |
含义 |
GF-SERVICE-001 |
409 |
已有名为“{0}”的服务。 |
GF-SERVICE-002 |
409 |
没有运行中的插件提供服务类型“{0}”。 |
GF-SERVICE-003 |
400 |
部分配置不正确。 |
GF-SERVICE-004 |
400 |
“{0}”不支持查找。 |
GF-SERVICE-005 |
502 |
插件出错或没有在规定时间内响应。 |
GF-SERVICE-006 |
400 |
策略的部分内容不正确。 |
GF-SERVICE-007 |
409 |
该服务已有名为“{0}”的策略。 |