注意:DELETE /_security/api_key API 在当前版本的 Easysearch 中尚未实现服务器端。
API 说明 #
DELETE /_security/api_key 端点在当前 Easysearch 版本中未实现服务器端 REST 处理器。
虽然客户端库中存在相关的数据结构类(如 ApiKey.java),但服务器端缺少相应的 REST 处理器来处理 API 密钥的删除请求。
预期 API 格式 #
DELETE /_security/api_key/{id}
预期参数 #
路径参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
{id} | String | 是 | - | 要删除的 API 密钥的唯一标识符 |
查询参数 #
| 参数 | 类型 | 是否必填 | 默认值 | 描述 |
|---|---|---|---|---|
refresh | Boolean | 否 | true | 是否立即刷新相关索引 |
预期请求示例 #
删除指定 API 密钥 #
DELETE /_security/api_key/VuaCfGcBCdbkQm-e5aOx
删除并立即刷新 #
DELETE /_security/api_key/VuaCfGcBCdbkQm-e5aOx?refresh=true
预期响应格式 #
成功响应 #
{
"found": true,
"id": "VuaCfGcBCdbkQm-e5aOx",
"name": "my-api-key"
}
API 密钥不存在 #
{
"found": false,
"id": "VuaCfGcBCdbkQm-e5aOx"
}
响应字段说明 #
| 字段 | 类型 | 描述 |
|---|---|---|
found | Boolean | 是否找到并删除了 API 密钥 |
id | String | API 密钥的唯一标识符 |
name | String | API 密钥的名称(如果存在) |
当前状态 #
在 Easysearch 当前版本中:
- 客户端支持:存在
ApiKey类定义 - 服务器端实现:未实现 REST 处理器
- 安全模块:
SecurityRestApiActions.java中未包含 API 密钥处理器
相关文件 #
客户端类 #
client/rest-high-level/src/main/java/org/easysearch/client/security/support/ApiKey.javaclient/rest-high-level/src/main/java/org/easysearch/client/security/GetApiKeyResponse.javaclient/rest-high-level/src/main/java/org/easysearch/client/security/CreateApiKeyResponse.java
服务器端(缺少实现) #
modules/security/src/main/java/com/infinilabs/security/dlic/rest/api/SecurityRestApiActions.java
API 密钥结构 #
根据客户端类 ApiKey 的定义:
| 字段 | 类型 | 描述 |
|---|---|---|
name | String | API 密钥的名称 |
id | String | API 密钥的唯一标识符 |
creation | Instant | API 密钥的创建时间 |
expiration | Instant | API 密钥的过期时间 |
invalidated | Boolean | API 密钥是否已被失效 |
username | String | 关联的用户名 |
realm | String | 认证领域名称 |
实现建议 #
如需实现此功能,需要:
- 创建新的
ApiKeyAction类,继承AbstractApiAction - 将其添加到
SecurityRestApiActions.getHandler()方法 - 实现
handleDelete方法处理 API 密钥删除 - 定义适当的验证和错误处理
- 实现密钥失效和清理机制
替代方案 #
目前可以使用以下替代方案管理认证:
- 用户管理:通过删除用户来撤销其所有认证方式
- 令牌失效:使用令牌黑名单机制(如果已实现)
- 密码更改:强制更改用户密码
注意事项 #
- 未实现功能:该 API 当前不可用
- 不可恢复:删除后 API 密钥无法恢复
- 立即生效:删除后该密钥将立即无法使用
- 审计日志:建议记录删除操作用于审计
参考文档 #
如需实现此功能,可以参考:
- Elasticsearch 的 API 密钥管理功能
- OpenSearch 的 API 密钥实现





