Quarkus:集成测试——如何模拟 OIDC?
Quarkus: Integration tests - how to mock OIDC?
我正在尝试 运行 与 Quarkus 进行一些集成测试,并使用承载令牌授权保护我们的 JAX-RS 应用程序。
根据我们在 Quarkus Guide 上看到的,理论上可以模拟授权机制的行为,而不需要授权服务器(如 Keycloak)运行ning在本地。
我发现的问题是我无法在描述的任何依赖项中找到 OidcWiremockTestResource.class
。它在哪里?
此外,我们如何避免授权服务器 运行ning 用于 运行ning 一些针对我们端点的测试?
我发现可以模拟 JsonWebToken
和 SecurityIdentity
只需使用:
@InjectMock
SecurityIdentity identity;
@InjectMock
JsonWebToken token;
它工作得很好,但是当我尝试 运行 集成测试时,授权服务器需要启动和 运行ning。否则 Quarkus 无法尝试连接它。
我尝试禁用 OIDC 扩展 (quarkus.oidc.enabled=false
),但是当然,代码无法编译(端点无法识别依赖项)。
那么,在 运行 进行一些集成测试时,哪一个是跳过 OIDC 连接的最佳方法?
最佳,
OidcWiremocTestResource
在 1.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 实例进行测试。
我正在尝试 运行 与 Quarkus 进行一些集成测试,并使用承载令牌授权保护我们的 JAX-RS 应用程序。
根据我们在 Quarkus Guide 上看到的,理论上可以模拟授权机制的行为,而不需要授权服务器(如 Keycloak)运行ning在本地。
我发现的问题是我无法在描述的任何依赖项中找到 OidcWiremockTestResource.class
。它在哪里?
此外,我们如何避免授权服务器 运行ning 用于 运行ning 一些针对我们端点的测试?
我发现可以模拟 JsonWebToken
和 SecurityIdentity
只需使用:
@InjectMock
SecurityIdentity identity;
@InjectMock
JsonWebToken token;
它工作得很好,但是当我尝试 运行 集成测试时,授权服务器需要启动和 运行ning。否则 Quarkus 无法尝试连接它。
我尝试禁用 OIDC 扩展 (quarkus.oidc.enabled=false
),但是当然,代码无法编译(端点无法识别依赖项)。
那么,在 运行 进行一些集成测试时,哪一个是跳过 OIDC 连接的最佳方法?
最佳,
OidcWiremocTestResource
在 1.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 实例进行测试。