从 Easysearch 安全配置中删除指定的内部用户。
API 格式 #
DELETE /_security/user/{name}
API 作用 #
该 API 用于从内部原生领域(Native Realm)中删除用户,包括:
- 删除用户的所有关联数据(角色、属性、凭证)
- 更新整个集群的安全配置
- 需要相应的写权限
API 参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{name} | String | 是 | - | 要删除的用户名 |
查询参数 #
- 无(该 API 不使用任何查询参数)
请求体 #
- 不需要请求体(DELETE 操作不需要 JSON 载荷)
请求示例 #
删除指定用户 #
DELETE /_security/user/john_doe
删除管理员用户 #
DELETE /_security/user/admin
响应示例 #
成功响应 #
200 OK
{
"status": "OK",
"message": "'john_doe' deleted."
}
错误响应 - 未指定用户 #
400 Bad Request
{
"status": "BAD_REQUEST",
"message": "No user specified."
}
错误响应 - 用户不存在 #
404 Not Found
{
"status": "NOT_FOUND",
"message": "User 'john_doe' not found."
}
错误响应 - 权限不足 #
403 Forbidden
{
"status": "FORBIDDEN",
"message": "No permission to delete user."
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
status | String | 操作状态(OK、BAD_REQUEST、NOT_FOUND 等) |
message | String | 操作结果消息 |
权限要求 #
删除用户需要相应的安全权限:
- 需要具有管理用户的安全权限
- 通常需要
cluster:admin/security/user/delete权限 - 无法删除当前登录的超级用户(如果有)
相关操作 #
- GET /_security/user:查询所有用户
- GET /_security/user/{name}:查询指定用户
- POST /_security/user:创建新用户
- PUT /_security/user/{name}:更新用户信息
使用场景 #
- 用户离职:删除离职员工的账户
- 账户清理:清理不再使用的测试账户
- 安全审计:移除未授权的用户账户
- 权限调整:删除原有角色后重建用户
注意事项 #
- 不可恢复:删除后用户数据无法恢复,请谨慎操作
- 关联数据:删除用户会同时删除其所有角色和属性
- 集群更新:删除操作会更新整个集群的安全配置
- 当前用户:无法删除当前正在执行删除操作的用户(如果该用户是唯一的超级用户)
- 原生领域:该 API 仅适用于内部原生领域,不适用于外部认证提供商(如 LDAP、Active Directory)
实现细节 #
- REST 处理器:
InternalUsersApiAction - 路由定义:
DELETE /_security/user/{name} - 继承:继承自
PatchableResourceApiAction和AbstractApiAction - 源文件:
modules/security/src/main/java/com/infinilabs/security/dlic/rest/api/InternalUsersApiAction.java





