1.8. 使用 Curl 或浏览器以生产环境模式测试您的应用程序


要使用 Curl 或浏览器首先启动 PostgreSQL 服务器来测试您的应用。然后,在 JVM 或原生模式下运行您的应用程序。

1.8.1. 启动 PostgreSQL 服务器

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
Copy to Clipboard Toggle word wrap

1.8.2. 编译并运行应用程序

  • 使用以下方法之一编译并运行 Quarkus 应用程序:

    • JVM 模式

      1. 编译应用程序:

        • 使用 Quarkus CLI:

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

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

          ./gradlew build
          Copy to Clipboard Toggle word wrap
      2. 运行应用程序:

        java -jar target/quarkus-app/quarkus-run.jar
        Copy to Clipboard Toggle word wrap
    • 原生模式

      1. 编译应用程序:

        • 使用 Quarkus CLI:

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

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

          ./gradlew build -Dquarkus.native.enabled=true
          Copy to Clipboard Toggle word wrap
      2. 运行应用程序:

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

1.8.3. 使用 Curl 访问并测试应用安全性

当应用程序运行时,您可以使用以下 Curl 命令之一访问其端点。

  • 匿名连接到受保护的端点:

    $ 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
    Copy to Clipboard Toggle word wrap

您还可以使用浏览器访问相同的端点 URL。

1.8.4. 使用浏览器访问并测试应用安全性

如果您以匿名方式使用浏览器连接到受保护的资源,则会显示基本身份验证表单,提示您输入凭证。

1.8.5. 结果

当您提供授权用户的凭证时,如 admin:admin,Jakarta Persistence 安全扩展会验证并加载用户角色。admin 用户有权访问受保护的资源。

如果资源使用 @RolesAllowed ("user") 保护,用户 admin 不会被授权访问该资源,因为它没有分配给"user"角色,如下例所示:

$ curl -i -X GET -u admin:admin http://localhost:8080/api/users/me

HTTP/1.1 403 Forbidden
Copy to Clipboard Toggle word wrap

最后,名为 user 的用户被授权,安全上下文包含主体详情,例如用户名。

$ 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
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat