[英]Quarkus: Integration tests - how to mock OIDC?
我正在嘗試使用 Quarkus 運行一些集成測試,並使用承載令牌授權保護我們的 JAX-RS 應用程序。
根據我們在Quarkus 指南中看到的內容,理論上可以模擬授權機制的行為,而無需在本地運行授權服務器(如 Keycloak)。
我發現的問題是在所描述的任何依賴項中都找不到OidcWiremockTestResource.class
。 在哪兒?
此外,我們如何避免運行授權服務器來針對我們的端點運行一些測試?
我發現可以模擬JsonWebToken
和SecurityIdentity
只需使用:
@InjectMock
SecurityIdentity identity;
@InjectMock
JsonWebToken token;
它工作得很好,但是當我嘗試運行集成測試時,授權服務器仍然需要啟動並運行。 否則 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 實例進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.