diff --git a/src/main/java/net/siegeln/cameleer/saas/portal/TenantPortalService.java b/src/main/java/net/siegeln/cameleer/saas/portal/TenantPortalService.java index 39cdf43..855cc01 100644 --- a/src/main/java/net/siegeln/cameleer/saas/portal/TenantPortalService.java +++ b/src/main/java/net/siegeln/cameleer/saas/portal/TenantPortalService.java @@ -5,6 +5,7 @@ import net.siegeln.cameleer.saas.identity.LogtoManagementClient; import net.siegeln.cameleer.saas.identity.ServerApiClient; import net.siegeln.cameleer.saas.license.LicenseEntity; import net.siegeln.cameleer.saas.license.LicenseService; +import net.siegeln.cameleer.saas.provisioning.ProvisioningProperties; import net.siegeln.cameleer.saas.provisioning.TenantProvisioner; import net.siegeln.cameleer.saas.tenant.TenantEntity; import net.siegeln.cameleer.saas.tenant.TenantService; @@ -24,17 +25,20 @@ public class TenantPortalService { private final ServerApiClient serverApiClient; private final LogtoManagementClient logtoClient; private final TenantProvisioner tenantProvisioner; + private final ProvisioningProperties provisioningProps; public TenantPortalService(TenantService tenantService, LicenseService licenseService, ServerApiClient serverApiClient, LogtoManagementClient logtoClient, - TenantProvisioner tenantProvisioner) { + TenantProvisioner tenantProvisioner, + ProvisioningProperties provisioningProps) { this.tenantService = tenantService; this.licenseService = licenseService; this.serverApiClient = serverApiClient; this.logtoClient = logtoClient; this.tenantProvisioner = tenantProvisioner; + this.provisioningProps = provisioningProps; } // --- Inner records --- @@ -158,10 +162,12 @@ public class TenantPortalService { public TenantSettingsData getSettings() { TenantEntity tenant = resolveTenant(); + String publicEndpoint = provisioningProps.publicProtocol() + "://" + + provisioningProps.publicHost() + "/t/" + tenant.getSlug() + "/"; return new TenantSettingsData( tenant.getName(), tenant.getSlug(), tenant.getTier().name(), tenant.getStatus().name(), - tenant.getServerEndpoint(), tenant.getCreatedAt() + publicEndpoint, tenant.getCreatedAt() ); } diff --git a/src/test/java/net/siegeln/cameleer/saas/portal/TenantPortalServiceTest.java b/src/test/java/net/siegeln/cameleer/saas/portal/TenantPortalServiceTest.java index 4a82198..0b6fbff 100644 --- a/src/test/java/net/siegeln/cameleer/saas/portal/TenantPortalServiceTest.java +++ b/src/test/java/net/siegeln/cameleer/saas/portal/TenantPortalServiceTest.java @@ -6,6 +6,7 @@ import net.siegeln.cameleer.saas.identity.ServerApiClient; import net.siegeln.cameleer.saas.identity.ServerApiClient.ServerHealthResponse; import net.siegeln.cameleer.saas.license.LicenseEntity; import net.siegeln.cameleer.saas.license.LicenseService; +import net.siegeln.cameleer.saas.provisioning.ProvisioningProperties; import net.siegeln.cameleer.saas.provisioning.TenantProvisioner; import net.siegeln.cameleer.saas.tenant.TenantEntity; import net.siegeln.cameleer.saas.tenant.TenantService; @@ -45,6 +46,9 @@ class TenantPortalServiceTest { @Mock private TenantProvisioner tenantProvisioner; + private final ProvisioningProperties provisioningProps = new ProvisioningProperties( + null, null, null, null, "test.example.com", "https", null, null, null, null); + private TenantPortalService tenantPortalService; private final UUID tenantId = UUID.randomUUID(); @@ -52,7 +56,7 @@ class TenantPortalServiceTest { @BeforeEach void setUp() { TenantContext.setTenantId(tenantId); - tenantPortalService = new TenantPortalService(tenantService, licenseService, serverApiClient, logtoClient, tenantProvisioner); + tenantPortalService = new TenantPortalService(tenantService, licenseService, serverApiClient, logtoClient, tenantProvisioner, provisioningProps); } @AfterEach @@ -185,7 +189,7 @@ class TenantPortalServiceTest { assertThat(result.slug()).isEqualTo("acme-corp"); assertThat(result.tier()).isEqualTo("MID"); assertThat(result.status()).isEqualTo("ACTIVE"); - assertThat(result.serverEndpoint()).isEqualTo("http://server:8080"); + assertThat(result.serverEndpoint()).isEqualTo("https://test.example.com/t/acme-corp/"); assertThat(result.createdAt()).isNull(); // no @PrePersist called in test, createdAt is null } }