Spring Boot Integration-testing mit Keycloak

Raphael_

Aktives Mitglied
Hi,
ich habe derzeit seit einigen Tagen ein Problem, an dem ich arbeite. Konkret versuche ich, einen Endpunkt zu testen, der über Keycloak authentifiziert wird. Vor jedem meiner Tests wird ein Keycloak Docker-Container gestartet und gemäß meiner realm-export.json-Datei konfiguriert. Das funktioniert einwandfrei. Dadurch erhalte ich ein Zugriffstoken, das von diesem Container als gültig erachtet wird.

Das Problem liegt darin, dass, wenn ich meinen "echten" Endpunkt aufrufe, das Zugriffstoken aufgrund meiner SecurityConfig-Datei an Keycloak weitergeleitet wird. Um auf mein speziell für Integrationstests konfiguriertes Keycloak zuzugreifen, habe ich eine application-test.yml erstellt, auf die die SecurityConfig während der Tests zugreift. Mein Problem ist, dass der Port, auf dem der Container gestartet wird, zufällig festgelegt wird, und ich es nicht schaffe, diesen Port in der application-test.yml anzugeben. Die Verwendung einer Variable scheint nicht zu funktionieren, da die YAML-Datei vor meinem Test ausgeführt wird, und daher erhalte ich einen Fehler, dass die Variable nicht gefunden werden kann. Es scheint auch nicht möglich zu sein, den Port für diesen Container festzulegen.

Meine Frage lautet also: Wie kann ich sicherstellen, dass meine application-test.yml den richtigen Port kennt, um das Token zu validieren?
 

Zurück
Oben