我们可以通过发送包含2个以上用户信息的json数组在Keycloak中创建用户吗?

时间:2019-02-04 08:10:44

标签: java keycloak keycloak-services

我能够通过使用邮递员发布仅包含1个用户的json在Keycloak中创建用户。

  

http://localhost:8080/auth/admin/realms/master/users

但是当我尝试通过传递包含1条以上记录的json数组来创建1条以上用户时,出现500内部服务器错误

[
  {
    "username": "user1",
    "firstName": "John",
    "attributes": {
      "pl_uid": null
    },
    "credentials": [
      {
        "temporary": true,
        "type": "password",
        "value": "ares2012"
      }
    ]
  },
  {
    "username": "1000195",
    "firstName": "Matt",
    "attributes": {
      "pl_uid": null
    },
    "credentials": [
      {
        "temporary": true,
        "type": "password",
        "value": "rx3o0t9f"
      }
    ]
  }
]

有什么方法可以将json数组发送到keycloak并在那里创建用户?

2 个答案:

答案 0 :(得分:2)

检查Keycloak's REST API后,似乎不接受用于创建用户的批量/批量请求。唯一的解决方案是为每个用户发送POST请求。

这并不奇怪,HTTP没有为这种请求做好准备:

  

由于HTTP没有为处理批量/批量请求和响应提供适当的指导。

来自this RESTful guide。看看吧,它在REST开发中非常有用。

答案 1 :(得分:1)

请查看Keycloak邮件列表中添加的讨论

  

请仔细检查一下我建议的方法。我以为我们做了   可以将用户导入现有领域,但这不是   案件。您必须创建整个领域。仍然可以做到   这样,首先创建领域并添加示例用户。停止   服务器并使用以下命令再次运行它:

 bin/standalone.sh -Dkeycloak.migration.action=export -Dkeycloak.migration.provider=dir -Dkeycloak.migration.realmName=<realm name> -Dkeycloak.migration.dir=<dir name>
  
      
  • 替换领域名称和目录名称
  •   
     

然后在目录名中,您应该获得几个json文件。那你可以   更新领域名称-users-0.json以添加要导入的用户。

     

比尔指出,管理员客户端可能是一个不错的选择   方法。我们还有一个Java客户端,使其更易于使用。   看一下admin-client示例。

因此,此URL可以提供帮助。请查看此链接enter link description here