【问题标题】:Create new user on Keycloack 10.0.1 from curl command通过 curl 命令在 Keycloak 10.0.1 上创建新用户
【发布时间】:2020-06-01 11:51:50
【问题描述】:

目前我尝试通过 Keycloak 的 Admin REST API 从 curl 命令创建用户。我可以将自己验证为管理员,我有一个很好的答案,但是当我想创建一个用户时,我们会收到如下错误:548 {"error":"HTTP 401 Unauthorized"}

这是我的 curl 命令:

#!/bin/bash
echo "* Request for authorization"
RESULT=`curl --data "username=rahul&password=password&grant_type=password&    client_id=admin-cli" http://localhost:8080/auth/realms/demo/protocol/openid-connect/token`

echo "\n"
echo "* Recovery of the token"
TOKEN=`echo $RESULT | sed 's/.*access_token":"//g' | sed 's/".*//g'`

echo "\n"
echo "* Display token"
echo $TOKEN

echo "\n"
echo " * user creation\n"
curl -v http://localhost:8080/auth/admin/realms/demo/users -H "Content-Type: application/json" -H "Authorization: bearer $TOKEN"   --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'

错误日志:

 curl -v http://localhost:8080/auth/admin/realms/demo/users -H "Content-Type: application/json" -H "Authorization: bearer $TOKEN"   --data '{"firstName":"xyz","lastName":"xyz", "email":"demo2@gmail.com", "enabled":"true"}'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying ::1:8080...
*   Trying 127.0.0.1:8080...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> POST /auth/admin/realms/demo/users HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.70.0
> Accept: */*
> Content-Type: application/json
> Authorization: bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJuNGhwUUdSeUZDcmhCTzJZbWhwc0FOWG9ZY0Ztak9CMmF3Y0RPdTNNOHhRIn0.eyJleHAiOjE1OTEwMTE0MDEsImlhdCI6MTU5MTAxMTEwMSwianRpIjoiYWMxYTYyZTEtYzUwMi00NzQ0LTgwMDAtMGQ2MWFkMzU2YzIxIiwiaXNzIjoiaHR0cDovL2xvY2FsaG9zdDo4MDgwL2F1dGgvcmVhbG1zL2RlbW8iLCJzdWIiOiJjYTc0MDk1Ni1jOTQ2LTQ2ZjktODBkZS1jOTFkZDc4MWJjMTIiLCJ0eXAiOiJCZWFyZXIiLCJhenAiOiJhZG1pbi1jbGkiLCJzZXNzaW9uX3N0YXRlIjoiMDdjODFjODQtM2FlOS00NzUyLTkxMzgtMWY4Yzg2Zjg3NWMzIiwiYWNyIjoiMSIsInNjb3BlIjoiZW1haWwgcHJvZmlsZSIsImVtYWlsX3ZlcmlmaWVkIjpmYWxzZSwibmFtZSI6IlJhaHVsIEt1bWFyIiwicHJlZmVycmVkX3VzZXJuYW1lIjoicmFodWwiLCJnaXZlbl9uYW1lIjoiUmFodWwiLCJmYW1pbHlfbmFtZSI6Ikt1bWFyIiwiZW1haWwiOiJhYmNAYWJjLmNvbSJ9.BP1krGeTyTVPhKY8zHCmYowNwnGWl-lgMN7XKukUjRgxl6EEJwERwtbiruX0Qv6bZOAx5VMCntcWLPQgCTFzFXJSOnqf_YLKoUEUKrB3Lp8RHgAax0daPFVp2F86cAQ4x_ExADqepcujinvi1qP-wyWidEEVq6_j6aprzLl59y8cN6mWYL2yIZ2Vb6ZnjFHLOsOo-GZBsE1t31nG8rqPscKKhGVj7SLwexnPXCATmqYW1sc6LJgUUh2zcJrI-L8hgfyTyUHrgzi5gB7YE5mRi3M1vyHfmKNSvnca-UXo7O8OHzTzTmrDQcaTrk86xaSCcL4qm-7s9xHLeYGMAqwGEQ
> Content-Length: 81
>
} [81 bytes data]
* upload completely sent off: 81 out of 81 bytes
* Mark bundle as not supporting multiuse
< HTTP/1.1 401 Unauthorized
< Connection: keep-alive
< X-XSS-Protection: 1; mode=block
< Strict-Transport-Security: max-age=31536000; includeSubDomains
< X-Content-Type-Options: nosniff
< X-Frame-Options: SAMEORIGIN
< 548{"error":"HTTP 401 Unauthorized"}
* Connection #0 to host localhost left intact

【问题讨论】:

    标签: java curl keycloak


    【解决方案1】:

    “HTTP 401 Unauthorized”错误消息正确意味着请求未经授权。这意味着您调用中的身份验证详细信息不正确。

    在您的请求中,您将不记名前缀作为“bearer”发送;

    内容类型:应用程序/json 授权:承载 内容长度:81

    将此更改为“Bearer ”,看看它是否有效。 美好的一天!

    【讨论】:

      猜你喜欢
      • 2019-10-24
      • 2017-08-11
      • 2019-01-08
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 2017-05-01
      • 2012-11-03
      • 2021-09-08
      相关资源
      最近更新 更多