Quarkus:集成测试——如何模拟 OIDC?

Quarkus: Integration tests - how to mock OIDC?

我正在尝试 运行 与 Quarkus 进行一些集成测试,并使用承载令牌授权保护我们的 JAX-RS 应用程序。

根据我们在 Quarkus Guide 上看到的,理论上可以模拟授权机制的行为,而不需要授权服务器(如 Keycloak)运行ning在本地。

我发现的问题是我无法在描述的任何依赖项中找到 OidcWiremockTestResource.class。它在哪里?

此外,我们如何避免授权服务器 运行ning 用于 运行ning 一些针对我们端点的测试?

我发现可以模拟 JsonWebTokenSecurityIdentity 只需使用:

    @InjectMock
    SecurityIdentity identity;

    @InjectMock
    JsonWebToken token;

它工作得很好,但是当我尝试 运行 集成测试时,授权服务器需要启动和 运行ning。否则 Quarkus 无法尝试连接它。

我尝试禁用 OIDC 扩展 (quarkus.oidc.enabled=false),但是当然,代码无法编译(端点无法识别依赖项)。

那么,在 运行 进行一些集成测试时,哪一个是跳过 OIDC 连接的最佳方法?

最佳,

OidcWiremocTestResource1.13.1.Final 可用。

此外,在这种情况下可以使用 TestSecurity 注释,从 Quarkus 2.0 开始,可能从 1.13.2.Final 开始(如果此 PR 将被反向移植): https://github.com/quarkusio/quarkus/pull/16362

最后,Quarkus 2.0 将有一个 Keycloak 测试支持模块 - 如果您使用 Keycloak,那么它将有助于针对实时 Keycloak 实例进行测试。