Java 如何检查用户名和电子邮件是否存在

Java 如何检查用户名和电子邮件是否存在,java,keycloak,Java,Keycloak,我们希望以编程方式创建keydape用户,并在创建之前检查用户名和/或电子邮件地址是否已存在于keydape中。我们正在使用版本4.4.0.FINAL 如果用户名或电子邮件地址已经在使用中,当我们使用keydape管理客户端以编程方式创建用户时,我们会得到错误代码409(冲突)。但是我们在响应中只得到一条错误消息(readEntity),即用户名已经存在。错误消息没有说明电子邮件地址也已在使用中 检查用户名和/或电子邮件地址是否已存在于Key斗篷中的最佳方法是什么 目标是准确地知道用户名或电子邮

我们希望以编程方式创建keydape用户,并在创建之前检查用户名和/或电子邮件地址是否已存在于keydape中。我们正在使用版本
4.4.0.FINAL

如果用户名或电子邮件地址已经在使用中,当我们使用keydape管理客户端以编程方式创建用户时,我们会得到错误代码409(冲突)。但是我们在响应中只得到一条错误消息(
readEntity
),即用户名已经存在。错误消息没有说明电子邮件地址也已在使用中

检查用户名和/或电子邮件地址是否已存在于Key斗篷中的最佳方法是什么


目标是准确地知道用户名或电子邮件地址是否已经存在。不仅在组合中,而且如果用户A已经使用了请求的用户名,用户B已经使用了请求的邮件地址。

使用管理API检查用户名和/或电子邮件是否存在:

GET /{realm}/users?username=toto&email=blabla@example.com 
然后检查结果是否为空。
username
email
查询参数都是可选的

更多信息: (查找“获取用户”部分。)

应该有一个与Admin CLI
kcadm.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附近。