2.11. 测试应用
有关以 dev 模式测试应用程序的信息,请参阅前面的在 dev mode 部分中运行该应用。
您可以使用 curl
来测试以 JVM 或原生模式启动的应用程序。
- 因为应用程序使用 Bearer 令牌身份验证,您必须首先从 Keycloak 服务器获取访问令牌来访问应用程序资源:
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' | jq --raw-output '.access_token' \ )
前面的示例获取用户 alice
的访问令牌。
-
任何用户都可以访问
http://localhost:8080/api/users/me
端点,该端点会返回一个 JSON 有效负载,其中包含该用户的详细信息。
curl -v -X GET \ http://localhost:8080/api/users/me \ -H "Authorization: Bearer "$access_token
-
只有具有
admin
角色的用户才能访问http://localhost:8080/api/admin
端点。如果您尝试使用之前发布的访问令牌访问此端点,您可以从服务器获得403
响应。
curl -v -X GET \ http://localhost:8080/api/admin \ -H "Authorization: Bearer "$access_token
-
要访问 admin 端点,获取
admin
用户的令牌:
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=admin&password=admin&grant_type=password' | jq --raw-output '.access_token' \ )
有关编写依赖于 Keycloak 的 Dev 服务
的集成测试的详情,请参考 "OpenID Connect (OIDC) Bearer 令牌身份验证" 指南中的 Dev Services for Keycloak 部分。