Fixed schema and grant escapes
This commit is contained in:
parent
757e726339
commit
e7fef6be34
@ -1,8 +1,12 @@
|
||||
package com.knecon.fforesight.tenantusermanagement.controller;
|
||||
|
||||
import javax.ws.rs.core.Response;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.MethodArgumentNotValidException;
|
||||
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
@ -12,6 +16,13 @@ import com.knecon.fforesight.tenantusermanagement.model.ErrorMessage;
|
||||
@RestControllerAdvice
|
||||
public class ControllerAdvice {
|
||||
|
||||
@ExceptionHandler(MethodArgumentNotValidException.class)
|
||||
public ResponseEntity<ErrorMessage> handleMethodArgumentNotValidException(MethodArgumentNotValidException e) {
|
||||
|
||||
return new ResponseEntity<>(new ErrorMessage(e.getMessage()), HttpStatus.BAD_REQUEST);
|
||||
}
|
||||
|
||||
|
||||
@ExceptionHandler(ResponseStatusException.class)
|
||||
public ResponseEntity<ErrorMessage> handleResponseStatusException(ResponseStatusException e) {
|
||||
|
||||
|
||||
@ -9,6 +9,8 @@ import com.knecon.fforesight.tenantcommons.model.S3StorageConnection;
|
||||
import com.knecon.fforesight.tenantcommons.model.SearchConnection;
|
||||
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotEmpty;
|
||||
import jakarta.validation.constraints.Pattern;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
@ -21,6 +23,7 @@ import lombok.NoArgsConstructor;
|
||||
public class TenantRequest {
|
||||
|
||||
@NotBlank
|
||||
@Pattern(regexp = "[A-Za-z0-9_-]*", message = "Tenant Id must match [A-Za-z0-9_-]")
|
||||
private String tenantId;
|
||||
@NotBlank
|
||||
private String displayName;
|
||||
|
||||
@ -4,6 +4,7 @@ import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
@ -225,9 +226,11 @@ public class TenantManagementService implements TenantProvider {
|
||||
tenantRequest.getDatabaseConnection().getPassword())) {
|
||||
DataSource tenantDataSource = new SingleConnectionDataSource(connection, false);
|
||||
JdbcTemplate jdbcTemplate = new JdbcTemplate(tenantDataSource);
|
||||
jdbcTemplate.execute((StatementCallback<Boolean>) stmt -> stmt.execute("CREATE SCHEMA `" + tenantRequest.getDatabaseConnection().getSchema()+"`"));
|
||||
jdbcTemplate.execute((StatementCallback<Boolean>) stmt -> stmt.execute("GRANT USAGE ON SCHEMA `" + tenantRequest.getDatabaseConnection()
|
||||
.getSchema() + "` TO `" + tenantRequest.getDatabaseConnection().getUsername() +"`"));
|
||||
String createStatement = "CREATE SCHEMA \"" + tenantRequest.getDatabaseConnection().getSchema() + "\"";
|
||||
String grantStatement = "GRANT USAGE ON SCHEMA \"" + tenantRequest.getDatabaseConnection().getSchema() + "\" TO \"" + tenantRequest.getDatabaseConnection()
|
||||
.getUsername() + "\"";
|
||||
jdbcTemplate.execute(createStatement);
|
||||
jdbcTemplate.execute(grantStatement);
|
||||
} catch (Exception e) {
|
||||
log.warn("Could not create schema:", e);
|
||||
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Tenant creation failed: " + e.getMessage(), e);
|
||||
|
||||
@ -43,7 +43,7 @@ public class AbstractTenantUserManagementIntegrationTest {
|
||||
@Autowired
|
||||
protected TestTenantService testTenantService;
|
||||
|
||||
public final static String TEST_TENANT_ID = "test_tenant_fforesight";
|
||||
public final static String TEST_TENANT_ID = "test-tenant-fforesight";
|
||||
|
||||
private static GenericContainer minioServer;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user