移除客户端 ID 的格式限制¶
https://blueprints.launchpad.net/zaqar/+spec/remove-format-constraint-of-client-id
由于某些客户端使用不同格式的客户端 ID,而不仅仅是 UUID,因此 Zaqar 将支持此功能。这也要求用户确保客户端 ID 是不可变的。
问题描述¶
现在 Zaqar 对客户端 ID 有格式限制,必须为 UUID 格式。但在某些情况下,此限制不太合理,例如用户希望将 LDAP 中的用户 ID 作为客户端 ID,但 Zaqar 目前不允许这样做。
提议的变更¶
添加三个配置选项
‘client_id_uuid_safe’:定义客户端 ID 的格式,值可以是“strict”或“off”。“strict”表示客户端 ID 的格式必须为 UUID,“off”表示移除限制。默认值为‘strict’。
‘min_length_client_id’:如果移除 UUID 限制,则定义客户端 ID 的最小长度。默认值为 10。
‘max_length_client_id’:如果移除 UUID 限制,则定义客户端 ID 的最大长度。默认值为 36。
将更改 wsgi/helpers.py 中的 ‘require_client_id’ 方法以支持验证不同格式的客户端 ID。
API 影响¶
对于 WSGI:将影响 v1.1 和 v2 版本的全部 API。
对于 WebSocket:将影响 v2 版本的消息列表和消息发布。我们将在后续补丁中支持其他 API。
缺点¶
如果用户使用非常长的客户端 ID,可能会有轻微的性能影响,因为 Zaqar 需要在存储层中存储客户端 ID。
备选方案¶
N/A
实现¶
负责人¶
wanghao<sxmatch1986@gmail.com>
里程碑¶
Rocky-3
工作项¶
#* 更改 Zaqar 服务器代码。 #* 更新 API 参考。 #* 为此功能添加发布说明。 #* 此功能的单元测试。
依赖项¶
N/A