RED-7175: catch if index name is null to avoid wrong search connections

This commit is contained in:
Ali Oezyetimoglu 2023-09-05 14:32:18 +02:00
parent e6314a220a
commit cb8b7a27c6
3 changed files with 24 additions and 7 deletions

View File

@ -34,8 +34,8 @@ publishing {
maven {
url = uri("https://nexus.knecon.com/repository/red-platform-releases/")
credentials {
username = providers.gradleProperty("mavenUser").getOrNull();
password = providers.gradleProperty("mavenPassword").getOrNull();
username = providers.gradleProperty("mavenUser").getOrNull()
password = providers.gradleProperty("mavenPassword").getOrNull()
}
}
}
@ -47,10 +47,10 @@ repositories {
mavenLocal()
mavenCentral()
maven {
url = uri("https://nexus.knecon.com/repository/gindev/");
url = uri("https://nexus.knecon.com/repository/gindev/")
credentials {
username = providers.gradleProperty("mavenUser").getOrNull();
password = providers.gradleProperty("mavenPassword").getOrNull();
username = providers.gradleProperty("mavenUser").getOrNull()
password = providers.gradleProperty("mavenPassword").getOrNull()
}
}
}

View File

@ -7,7 +7,6 @@ import java.util.List;
import java.util.Set;
import java.util.UUID;
import javax.annotation.PostConstruct;
import javax.sql.DataSource;
import org.springframework.beans.factory.annotation.Value;
@ -81,7 +80,14 @@ public class DevTestTenantService {
.username(tenantsDBName)
.password(tenantsDBPassword)
.build())
.searchConnection(SearchConnection.builder().hosts(Set.of("localhost")).port(9200).scheme("http").numberOfShards("1").numberOfReplicas("5").indexName("indexname").build())
.searchConnection(SearchConnection.builder()
.hosts(Set.of("localhost"))
.port(9200)
.scheme("http")
.numberOfShards("1")
.numberOfReplicas("5")
.indexName("indexname")
.build())
.s3StorageConnection(S3StorageConnection.builder().key("minioadmin").secret("minioadmin").bucketName("redaction").endpoint("http://localhost:9000").build())
.build();

View File

@ -91,6 +91,7 @@ public class TenantManagementService implements TenantProvider {
log.info("Creating tenant: {}", tenantRequest.getTenantId());
var jdbcUrl = JDBCUtils.buildJdbcUrlWithSchema(tenantRequest.getDatabaseConnection());
validateJdbcUrl(jdbcUrl);
checkIndexName(tenantRequest.getSearchConnection().getIndexName());
TenantEntity tenantEntity = TenantEntity.builder()
.tenantId(tenantRequest.getTenantId())
@ -400,6 +401,7 @@ public class TenantManagementService implements TenantProvider {
var searchConnection = tenantRequest.getSearchConnection();
if (searchConnection != null) {
checkIndexName(searchConnection.getIndexName());
tenantEntity.setSearchConnection(SearchConnectionEntity.builder()
.hosts(searchConnection.getHosts())
.port(searchConnection.getPort())
@ -486,6 +488,8 @@ public class TenantManagementService implements TenantProvider {
authDetails.setClientRoles(roleMapping.getPermissions());
authDetails.setRealmRoles(roleMapping.getAllRoles());
checkIndexName(entity.getSearchConnection().getIndexName());
var tenantResponse = TenantResponse.builder()
.tenantId(entity.getTenantId())
.displayName(entity.getDisplayName())
@ -561,4 +565,11 @@ public class TenantManagementService implements TenantProvider {
}
}
private void checkIndexName(String indexName) {
if (indexName == null) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "You need to provide an index name");
}
}
}