1.8. Curl またはブラウザーを使用した本番モードでのアプリケーションのテスト


Curl またはブラウザーを使用してアプリケーションをテストするには、まず PostgreSQL サーバーを起動します。次に、JVM モードまたはネイティブモードのいずれかでアプリケーションをコンパイルして実行します。

1.8.1. PostgreSQL サーバーの起動

Copy to Clipboard Toggle word wrap
docker run --rm=true --name security-getting-started -e POSTGRES_USER=quarkus \
           -e POSTGRES_PASSWORD=quarkus -e POSTGRES_DB=quarkus \
           -p 5432:5432 postgres:17

1.8.2. アプリケーションのコンパイルおよび実行

  • 以下の方法のいずれかを使用して、Quarkus アプリケーションをコンパイルして実行します。

    • JVM モード

      1. アプリケーションをコンパイルします。

        • Quarkus CLI を使用:

          Copy to Clipboard Toggle word wrap
          quarkus build
        • Maven を使用:

          Copy to Clipboard Toggle word wrap
          ./mvnw install
        • Gradle を使用:

          Copy to Clipboard Toggle word wrap
          ./gradlew build
      2. アプリケーションを実行します。

        Copy to Clipboard Toggle word wrap
        java -jar target/quarkus-app/quarkus-run.jar
    • ネイティブモード

      1. アプリケーションをコンパイルします。

        • Quarkus CLI を使用:

          Copy to Clipboard Toggle word wrap
          quarkus build --native
        • Maven を使用:

          Copy to Clipboard Toggle word wrap
          ./mvnw install -Dnative
        • Gradle を使用:

          Copy to Clipboard Toggle word wrap
          ./gradlew build -Dquarkus.native.enabled=true
      2. アプリケーションを実行します。

        Copy to Clipboard Toggle word wrap
        ./target/security-jpa-quickstart-1.0.0-SNAPSHOT-runner

1.8.3. Curl を使用してアプリケーションのセキュリティーにアクセスしてテストする

アプリケーションの実行中に、以下の Curl コマンドのいずれかを使用してエンドポイントにアクセスできます。

  • 保護されたエンドポイントに匿名で接続します。

    Copy to Clipboard Toggle word wrap
    $ curl -i -X GET http://localhost:8080/api/public
    
    HTTP/1.1 200 OK
    Content-Length: 6
    Content-Type: text/plain;charset=UTF-8
    
    public
  • 保護されたエンドポイントに匿名で接続します。

    Copy to Clipboard Toggle word wrap
    $ curl -i -X GET http://localhost:8080/api/admin
    
    HTTP/1.1 401 Unauthorized
    WWW-Authenticate: Basic
  • 承認されたユーザーとして保護されたエンドポイントに接続します。

    Copy to Clipboard Toggle word wrap
    $ curl -i -X GET -u admin:admin http://localhost:8080/api/admin
    
    HTTP/1.1 200 OK
    Content-Length: 5
    Content-Type: text/plain;charset=UTF-8
    
    admin

ブラウザーを使用して同じエンドポイント URL にアクセスすることもできます。

1.8.4. ブラウザーでアプリケーションのセキュリティーにアクセスしてテストする

ブラウザーを使用して保護されたリソースに匿名で接続する場合は、Basic 認証フォームが表示され、認証情報の入力を求められます。

1.8.5. 結果

admin:admin などの承認済みユーザーの認証情報を提供すると、Jakarta Persistence セキュリティーエクステンションによりユーザーのロールが認証され、読み込まれます。admin ユーザーには、保護されたリソースにアクセスする権限が与えられます。

リソースが @RolesAllowed ("user") で保護されている場合は、次の例に示すように、admin ユーザーは、"user" ロールに割り当てられていないため、リソースにアクセスする権限がありません。

Copy to Clipboard Toggle word wrap
$ curl -i -X GET -u admin:admin http://localhost:8080/api/users/me

HTTP/1.1 403 Forbidden

最後に、user という名前のユーザーが承認され、セキュリティーコンテキストにはユーザー名などのプリンシパルの詳細が含まれます。

Copy to Clipboard Toggle word wrap
$ curl -i -X GET -u user:user http://localhost:8080/api/users/me

HTTP/1.1 200 OK
Content-Length: 4
Content-Type: text/plain;charset=UTF-8

user
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat, Inc.