Java 如何检查用户名和电子邮件是否存在
我们希望以编程方式创建keydape用户,并在创建之前检查用户名和/或电子邮件地址是否已存在于keydape中。我们正在使用版本Java 如何检查用户名和电子邮件是否存在,java,keycloak,Java,Keycloak,我们希望以编程方式创建keydape用户,并在创建之前检查用户名和/或电子邮件地址是否已存在于keydape中。我们正在使用版本4.4.0.FINAL 如果用户名或电子邮件地址已经在使用中,当我们使用keydape管理客户端以编程方式创建用户时,我们会得到错误代码409(冲突)。但是我们在响应中只得到一条错误消息(readEntity),即用户名已经存在。错误消息没有说明电子邮件地址也已在使用中 检查用户名和/或电子邮件地址是否已存在于Key斗篷中的最佳方法是什么 目标是准确地知道用户名或电子邮
4.4.0.FINAL
如果用户名或电子邮件地址已经在使用中,当我们使用keydape管理客户端以编程方式创建用户时,我们会得到错误代码409(冲突)。但是我们在响应中只得到一条错误消息(readEntity
),即用户名已经存在。错误消息没有说明电子邮件地址也已在使用中
检查用户名和/或电子邮件地址是否已存在于Key斗篷中的最佳方法是什么
目标是准确地知道用户名或电子邮件地址是否已经存在。不仅在组合中,而且如果用户A已经使用了请求的用户名,用户B已经使用了请求的邮件地址。使用管理API检查用户名和/或电子邮件是否存在:
GET /{realm}/users?username=toto&email=blabla@example.com
然后检查结果是否为空。username
和email
查询参数都是可选的
更多信息:
(查找“获取用户”部分。)
应该有一个与Admin CLIkcadm.sh
对应的命令
--编辑2020-01-15--
不幸的是,v4.4.0的文档从KeyClope网站上消失了。剩下的最接近的文档是v4.8.0:
在2020年,有一个新的API(至少有一个新的PR在2020年6月合并): 现在我们可以使用API,例如:
List<UserRepresentation> search(@QueryParam("username") String username, @QueryParam("exact") Boolean exact);
列表搜索(@QueryParam(“用户名”)字符串用户名,@QueryParam(“精确”)布尔精确);
好的,谢谢。但问题是,此API调用以及管理客户端的相关find
-方法不允许精确匹配搜索。搜索始终使用通配符执行。这意味着可能会有一长串用户出现问题。是的,它使用了通配符,不幸的是,这仍然是一个开放的:-(.有人发了一封邮件,被拒绝了。你可以尝试一下,或者至少对这个问题发表评论。Cyril提供的链接不再有效,对于Key斗篷版本8,它已经变成了。是的,4.4.0的文档不见了。我还把4.8.0的链接放在了OP中使用的4.4.0附近。