2.11. 测试应用程序
有关以 dev 模式测试应用程序的更多信息,请参阅前面 在 dev mode 中运行该应用。
您可以使用 curl 来测试以 JVM 或原生模式启动的应用程序。
获取 alice 的访问令牌:
使用此令牌调用 /frontend/user-name-with-propagated-token。此命令返回 200 状态代码和名称 alice :
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
curl -i -X GET \
http://localhost:8080/frontend/user-name-with-propagated-token \
-H "Authorization: Bearer "$access_token
使用相同的令牌调用 /frontend/admin-name-with-propagated-token。与前面的命令不同,这个命令会返回 403,因为 alice 只有一个 用户角色 :
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
curl -i -X GET \
http://localhost:8080/frontend/admin-name-with-propagated-token \
-H "Authorization: Bearer "$access_token
接下来,获取 admin 的访问令牌:
使用此令牌调用 /frontend/user-name-with-propagated-token。此命令返回 200 状态代码和名称 admin :
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
curl -i -X GET \
http://localhost:8080/frontend/user-name-with-propagated-token \
-H "Authorization: Bearer "$access_token
使用相同的令牌调用 /frontend/admin-name-with-propagated-token。此命令还会返回 200 状态代码和名称 admin,因为 具有 admin user 和 admin 角色:
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
curl -i -X GET \
http://localhost:8080/frontend/admin-name-with-propagated-token \
-H "Authorization: Bearer "$access_token
接下来,检查 FrontendResource 方法,它不会传播现有的令牌,而是使用 OidcClient 获取和传播令牌。如上所示,OidcClient 配置为获取 alice 用户的令牌。
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-oidc-client-token
curl -i -X GET \
http://localhost:8080/frontend/user-name-with-oidc-client-token
此命令返回 200 状态代码和名称 alice。
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-oidc-client-token
curl -i -X GET \
http://localhost:8080/frontend/admin-name-with-oidc-client-token
与前面的命令不同,此命令会返回 403 状态代码。
接下来,测试以编程方式创建的 OIDC 客户端是否在 reactive 和 imperative (阻塞)模式中同时使用 RestClientWithTokenHeaderParam 正确获取并传播令牌。
调用 /user-name-with-oidc-client-token-header-param。此命令返回 200 状态代码和名称 alice :
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-oidc-client-token-header-param
curl -i -X GET \
http://localhost:8080/frontend/user-name-with-oidc-client-token-header-param
调用 /admin-name-with-oidc-client-token-header-param。与前面的命令不同,这个命令会返回一个 403 状态代码:
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-oidc-client-token-header-param
curl -i -X GET \
http://localhost:8080/frontend/admin-name-with-oidc-client-token-header-param
接下来,在阻塞模式下测试使用 OIDC 客户端的端点。
调用 /user-name-with-oidc-client-token-header-param-blocking。此命令返回 200 状态代码和名称 alice :
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-oidc-client-token-header-param-blocking
curl -i -X GET \
http://localhost:8080/frontend/user-name-with-oidc-client-token-header-param-blocking
调用 /admin-name-with-oidc-client-token-header-param-blocking。与前面的命令不同,这个命令会返回一个 403 状态代码:
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-oidc-client-token-header-param-blocking
curl -i -X GET \
http://localhost:8080/frontend/admin-name-with-oidc-client-token-header-param-blocking