Keycloak 注册会为重复的电子邮件引发 HTTP 500

Posted

技术标签:

【中文标题】Keycloak 注册会为重复的电子邮件引发 HTTP 500【英文标题】:Keycloak registration throws HTTP 500 for duplicate email 【发布时间】:2021-08-08 22:33:35 【问题描述】:

我知道这个主题here 有一个较早的问题,但是如果一个答案解决了问题,OP 从未报告过。因为

Internal Server Error

尽可能地对用户不友好,我很想将其更改为感觉更像“一条消息”而不是“一个铁砧掉在你脚上”的感觉。

我发现one other SO post 与这个问题(关于消失的“重复电子邮件”开关)切线相关,但问题确实不在于是否允许重复电子邮件(或如何恢复隐藏的管理控制),而是一个非常普通的问题是如何传达给用户的——嗯,比如当用户尝试使用现有用户名注册时,Keycloak 如何通知用户。

我们目前使用的是 Docker 版本的 Keycloak 12.0.4,并使用 Postgresql DB 在 IBM Cloud 中运行了一些自定义项(自定义 BCrypt 模块、一些日志记录更改)。我们还添加了自定义主题和国际化。不过,在使用默认 Keycloak 主题时也会出现同样的错误。

这是我们的登录设置:

【问题讨论】:

【参考方案1】:

原来是配置问题,但隐藏得如此之深,以至于即使是查看我创建的票证的 Keycloak 开发人员也掩盖了它。

肇事者位于菜单配置 > 身份验证 > 选项卡:流程 > 选择下拉菜单:注册 > 配置文件验证单选按钮 [o 必需 | o 已禁用]

这被设置为禁用,这实际上防止了注册表中的重复电子邮件检查 Realm settings > 选项卡:登录表单建议处于活动状态。但是,当然,数据库不会像上面提到的结果那样。

当然,这种设置组合至少应该发出警告。我希望这将得到纠正。

【讨论】:

以上是关于Keycloak 注册会为重复的电子邮件引发 HTTP 500的主要内容,如果未能解决你的问题,请参考以下文章

Keycloak中“完成注册”信的“欢迎”

keycloak,用户注册。如何添加角色?

Keycloak从注册表中删除名字和姓氏

Keycloak:一个领域的多个电子邮件地址?

如何通过 keycloak 向 github 企业中的每个用户添加主电子邮件?

使用 Keycloak 的 Cypress UI 自动登录失败