1.11. 测试应用程序


有关在开发模式 中测试应用程序的说明,请参阅前面的以 Dev 模式运行 应用程序。

您可以使用 curl 来测试在 JVM 或原生模式下运行的应用。

获取访问令牌

应用使用 bearer 令牌授权。要访问其资源,首先从 Keycloak 服务器获取访问令牌:

export access_token=$(\
    curl --insecure -X POST https://localhost:8543/realms/quarkus/protocol/openid-connect/token \
    --user backend-service:secret \
    -H 'content-type: application/x-www-form-urlencoded' \
    -d 'username=alice&password=alice&grant_type=password' | jq --raw-output '.access_token' \
 )
Copy to Clipboard Toggle word wrap
注意

如果 quarkus.oidc.authentication.user-info-required 属性设置为 true,则应用要求访问令牌用于请求 UserInfo。在这种情况下,您必须将 scope=openid 查询参数添加到令牌授权请求中,例如:

export access_token=$(\
    curl --insecure -X POST http://localhost:8180/realms/quarkus/protocol/openid-connect/token \
    --user backend-service:secret \
    -H 'content-type: application/x-www-form-urlencoded' \
    -d 'username=alice&password=alice&grant_type=password&scope=openid' | jq --raw-output '.access_token' \
 )
Copy to Clipboard Toggle word wrap

前面的示例获取用户 alice 的访问令牌。

访问 /api/users/me 端点

具有有效访问令牌的任何用户可以访问 http://localhost:8080/api/users/me 端点,该端点会返回 JSON 有效负载,其中包含用户详情:

curl -v -X GET \
  http://localhost:8080/api/users/me \
  -H "Authorization: Bearer "$access_token
Copy to Clipboard Toggle word wrap

访问 /api/admin 端点

http://localhost:8080/api/admin 端点仅限于具有 admin 角色的用户。如果您尝试使用之前发布的访问令牌访问此端点,服务器会返回 403 Forbidden 响应:

curl -v -X GET \
  http://localhost:8080/api/admin \
  -H "Authorization: Bearer "$access_token
Copy to Clipboard Toggle word wrap

获取管理员访问令牌

要访问 admin 端点,请为 admin 用户获取访问令牌:

export access_token=$(\
    curl --insecure -X POST https://localhost:8543/realms/quarkus/protocol/openid-connect/token \
    --user backend-service:secret \
    -H 'content-type: application/x-www-form-urlencoded' \
    -d 'username=admin&password=admin&grant_type=password' | jq --raw-output '.access_token' \
 )
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat