/*
 * Copyright (C) 2024 Das Land Schleswig-Holstein vertreten durch das
 * Ministerium für Energiewende, Klimaschutz, Umwelt und Natur Zentrales
 * IT-Management
 * 
 * Lizenziert unter der EUPL, Version 1.2 oder - sobald diese von der
 * Europäischen Kommission genehmigt wurden - Folgeversionen der EUPL
 * ("Lizenz"); Sie dürfen dieses Werk ausschließlich gemäß dieser Lizenz nutzen.
 * Eine Kopie der Lizenz finden Sie hier:
 * 
 * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
 * 
 * Sofern nicht durch anwendbare Rechtsvorschriften gefordert oder in
 * schriftlicher Form vereinbart, wird die unter der Lizenz verbreitete Software
 * "so wie sie ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
 * ausdrücklich oder stillschweigend - verbreitet. Die sprachspezifischen
 * Genehmigungen und Beschränkungen unter der Lizenz sind dem Lizenztext zu
 * entnehmen.
 */
package de.ozgcloud.admin.security;

import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.test.context.DynamicPropertyRegistry;
import org.springframework.test.context.DynamicPropertySource;

import dasniko.testcontainers.keycloak.KeycloakContainer;

@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public abstract class KeycloakTestContainers {

	static KeycloakContainer keycloak;
	static {
		keycloak = new KeycloakContainer().withRealmImportFile("keycloak/realm-export.json");
		keycloak.start();
	}

	@DynamicPropertySource
	static void registerResourceServerIssuerProperty(DynamicPropertyRegistry registry) {
		registry.add("spring.security.oauth2.resourceserver.jwt.issuer-uri", () -> keycloak.getAuthServerUrl() + "/realms/by-kiel-dev");
	}
}