Tenant Commons rework
This commit is contained in:
parent
1d849cddf5
commit
96febd7b7f
@ -22,7 +22,7 @@ import lombok.SneakyThrows;
|
||||
@Service
|
||||
public class EncryptionDecryptionService {
|
||||
|
||||
@Value("${pdftron-redaction-service.crypto.key:redaction}")
|
||||
@Value("${fforesight.tenant-commons.crypto.key:fforesight}")
|
||||
private String key;
|
||||
|
||||
private SecretKey secretKey;
|
||||
|
||||
@ -1,10 +1,20 @@
|
||||
package com.knecon.fforesight.tenantcommons;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@ComponentScan
|
||||
@Configuration
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@AutoConfiguration
|
||||
@ComponentScan(basePackageClasses = MultiTenancyAutoConfiguration.class)
|
||||
public class MultiTenancyAutoConfiguration {
|
||||
|
||||
@PostConstruct
|
||||
public void postConstruct() {
|
||||
|
||||
log.info("MultiTenancy AutoConfiguration Loaded!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,7 +2,6 @@ package com.knecon.fforesight.tenantcommons;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
import com.iqser.red.storage.commons.service.StorageConnectionProvider;
|
||||
|
||||
@ -13,14 +12,14 @@ import lombok.RequiredArgsConstructor;
|
||||
@ConditionalOnClass(StorageConnectionProvider.class)
|
||||
public class StorageConnectionProviderImpl implements StorageConnectionProvider {
|
||||
|
||||
private final TenantsClient tenantsClient;
|
||||
private final TenantProvider tenantProvider;
|
||||
private final EncryptionDecryptionService encryptionDecryptionService;
|
||||
|
||||
|
||||
@Override
|
||||
public com.iqser.red.storage.commons.model.AzureStorageConnection getAzureStorageConnection(String tenantId) {
|
||||
|
||||
var tenant = tenantsClient.getTenant(tenantId);
|
||||
var tenant = tenantProvider.getTenant(tenantId);
|
||||
return com.iqser.red.storage.commons.model.AzureStorageConnection.builder()
|
||||
.connectionString(encryptionDecryptionService.decrypt(tenant.getAzureStorageConnection().getConnectionString()))
|
||||
.containerName(tenant.getAzureStorageConnection().getContainerName())
|
||||
@ -31,7 +30,7 @@ public class StorageConnectionProviderImpl implements StorageConnectionProvider
|
||||
@Override
|
||||
public com.iqser.red.storage.commons.model.S3StorageConnection getS3StorageConnection(String tenantId) {
|
||||
|
||||
var tenant = tenantsClient.getTenant(tenantId);
|
||||
var tenant = tenantProvider.getTenant(tenantId);
|
||||
return com.iqser.red.storage.commons.model.S3StorageConnection.builder()
|
||||
.key(tenant.getS3StorageConnection().getKey())
|
||||
.secret(encryptionDecryptionService.decrypt(tenant.getS3StorageConnection().getSecret()))
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
package com.knecon.fforesight.tenantcommons;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.knecon.fforesight.tenantcommons.model.TenantResponse;
|
||||
|
||||
public interface TenantProvider {
|
||||
|
||||
TenantResponse getTenant(String tenantId);
|
||||
|
||||
|
||||
List<TenantResponse> getTenants();
|
||||
|
||||
}
|
||||
@ -1,5 +1,8 @@
|
||||
package com.knecon.fforesight.tenantcommons;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.MediaType;
|
||||
@ -9,9 +12,10 @@ import org.springframework.web.bind.annotation.ResponseStatus;
|
||||
|
||||
import com.knecon.fforesight.tenantcommons.model.TenantResponse;
|
||||
|
||||
@FeignClient(name = "TenantsResource", url = "${persistence-service.url}")
|
||||
@FeignClient(name = "TenantsResource", url = "${tenant-user-management-service.url}")
|
||||
@ResponseStatus(value = HttpStatus.OK)
|
||||
public interface TenantsClient {
|
||||
@ConditionalOnProperty(prefix = "fforesight.springdoc", value = "remote", havingValue = "true")
|
||||
public interface TenantsClient extends TenantProvider {
|
||||
|
||||
String TENANT_PATH = "/internal-api/tenants";
|
||||
String TENANT_ID_PARAM = "tenantId";
|
||||
@ -21,4 +25,8 @@ public interface TenantsClient {
|
||||
@GetMapping(value = TENANT_PATH + TENANT_ID_PATH_PARAM, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
TenantResponse getTenant(@PathVariable(TENANT_ID_PARAM) String tenantId);
|
||||
|
||||
|
||||
@GetMapping(value = TENANT_PATH, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
List<TenantResponse> getTenants();
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,18 @@
|
||||
package com.knecon.fforesight.tenantcommons.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AuthDetails {
|
||||
|
||||
private String issuer;
|
||||
@JsonAlias("jwks_uri")
|
||||
private String jwksUri;
|
||||
}
|
||||
@ -19,5 +19,6 @@ public class TenantResponse {
|
||||
private SearchConnection searchConnection;
|
||||
private AzureStorageConnection azureStorageConnection;
|
||||
private S3StorageConnection s3StorageConnection;
|
||||
private AuthDetails authDetails;
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user