8.11. アプリケーションのテスト
開発モードでアプリケーションをテストする方法の詳細は、前述の 開発モードでのアプリケーションの実行 セクションを参照してください。
curl
を使用して、JVM モードまたはネイティブモードで起動されたアプリケーションをテストできます。
alice
のアクセストークンを取得します。
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' \ )
次に、このトークンを使用して、/frontend/user-name-with-propagated-token
および /frontend/admin-name-with-propagated-token
を呼び出します。
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
このコマンドは、ステータスコード 200
と名前 alice
を返します。
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
対照的に、このコマンドは 403
を返します。alice
には user
ロールのみがあることを思い出してください。
次に、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' \ )
このトークンを使用して /frontend/user-name-with-propagated-token
を呼び出します。
curl -i -X GET \ http://localhost:8080/frontend/user-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
このコマンドは、ステータスコード 200
と名前 admin
を返します。
次に、このトークンを使用して /frontend/admin-name-with-propagated-token
を呼び出します。
curl -i -X GET \ http://localhost:8080/frontend/admin-name-with-propagated-token \ -H "Authorization: Bearer "$access_token
admin
に user
と admin
の両方のロールがあるため、このコマンドは、200
ステータスコードと名前 admin
も返します。
ここで、既存のトークンを伝播せず、OidcClient
を使用してトークンを取得および伝播する FrontendResource
メソッドを確認します。すでに示したように、OidcClient
は alice
ユーザーのトークンを取得するように設定されているため、次のようになります。
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
前のコマンドとは対照的に、このコマンドは 403
ステータスコードを返します。