fix: bound DDS connection timeouts
This commit is contained in:
@@ -15,6 +15,7 @@ import java.time.Duration;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Properties;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -82,10 +83,14 @@ public class DdsQueryService {
|
|||||||
|
|
||||||
var limit = Math.max(1, Math.min(requestedLimit, 100));
|
var limit = Math.max(1, Math.min(requestedLimit, 100));
|
||||||
var search = searchText == null ? "" : searchText.trim();
|
var search = searchText == null ? "" : searchText.trim();
|
||||||
try (Connection connection = DriverManager.getConnection(
|
|
||||||
properties.dbUrl(), user.username(), user.password())) {
|
|
||||||
connection.setReadOnly(true);
|
|
||||||
var timeoutSeconds = timeoutSeconds(properties.queryTimeout());
|
var timeoutSeconds = timeoutSeconds(properties.queryTimeout());
|
||||||
|
var connectionProperties = new Properties();
|
||||||
|
connectionProperties.setProperty("user", user.username());
|
||||||
|
connectionProperties.setProperty("password", user.password());
|
||||||
|
connectionProperties.setProperty("oracle.net.CONNECT_TIMEOUT", String.valueOf(timeoutSeconds * 1000));
|
||||||
|
connectionProperties.setProperty("oracle.jdbc.ReadTimeout", String.valueOf(timeoutSeconds * 1000));
|
||||||
|
try (Connection connection = DriverManager.getConnection(properties.dbUrl(), connectionProperties)) {
|
||||||
|
connection.setReadOnly(true);
|
||||||
var sessionUser = readSingleValue(connection,
|
var sessionUser = readSingleValue(connection,
|
||||||
"SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual", timeoutSeconds);
|
"SELECT SYS_CONTEXT('USERENV', 'SESSION_USER') FROM dual", timeoutSeconds);
|
||||||
var endUser = readSingleValue(connection,
|
var endUser = readSingleValue(connection,
|
||||||
|
|||||||
Reference in New Issue
Block a user