Class ConnectionUriUtils
- java.lang.Object
-
- org.apache.druid.utils.ConnectionUriUtils
-
public final class ConnectionUriUtils extends Object
-
-
Field Summary
Fields Modifier and Type Field Description static String
MARIADB_PREFIX
static String
MYSQL_NON_REGISTERING_DRIVER
static String
MYSQL_PREFIX
static String
POSTGRES_DRIVER
static String
POSTGRES_PREFIX
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
throwIfPropertiesAreNotAllowed(Set<String> actualProperties, Set<String> systemPropertyPrefixes, Set<String> allowedProperties)
This method checks {@param actualProperties} against {@param allowedProperties} if they are not system properties.static Set<String>
tryParseJdbcUriParameters(String connectionUri, boolean allowUnknown)
This method tries to determine the correct type of database for a given JDBC connection string URI, then load the driver using reflection to parse the uri parameters, returning the set of keys which can be used for JDBC parameter whitelist validation.static Set<String>
tryParseMariaDb2xConnectionUri(String connectionUri)
static Set<String>
tryParseMariaDb3xConnectionUri(String connectionUri)
static Set<String>
tryParseMySqlConnectionUri(String connectionUri)
static Set<String>
tryParsePostgresConnectionUri(String connectionUri)
-
-
-
Field Detail
-
MYSQL_PREFIX
public static final String MYSQL_PREFIX
- See Also:
- Constant Field Values
-
POSTGRES_PREFIX
public static final String POSTGRES_PREFIX
- See Also:
- Constant Field Values
-
MARIADB_PREFIX
public static final String MARIADB_PREFIX
- See Also:
- Constant Field Values
-
POSTGRES_DRIVER
public static final String POSTGRES_DRIVER
- See Also:
- Constant Field Values
-
MYSQL_NON_REGISTERING_DRIVER
public static final String MYSQL_NON_REGISTERING_DRIVER
- See Also:
- Constant Field Values
-
-
Method Detail
-
throwIfPropertiesAreNotAllowed
public static void throwIfPropertiesAreNotAllowed(Set<String> actualProperties, Set<String> systemPropertyPrefixes, Set<String> allowedProperties)
This method checks {@param actualProperties} against {@param allowedProperties} if they are not system properties. A property is regarded as a system property if its name starts with a prefix in {@param systemPropertyPrefixes}. See org.apache.druid.server.initialization.JDBCAccessSecurityConfig for more details.If a non-system property that is not allowed is found, this method throws an
IllegalArgumentException
.
-
tryParseJdbcUriParameters
public static Set<String> tryParseJdbcUriParameters(String connectionUri, boolean allowUnknown)
This method tries to determine the correct type of database for a given JDBC connection string URI, then load the driver using reflection to parse the uri parameters, returning the set of keys which can be used for JDBC parameter whitelist validation.uris starting with
MYSQL_PREFIX
will first try to use the MySQL Connector/J driver (5.x), then fallback to MariaDB Connector/J (version 2.x) which also accepts jdbc:mysql uris. This method does not attempt to use MariaDB Connector/J 3.x alpha driver (at the time of these javadocs, it only handles the jdbc:mariadb prefix)uris starting with
POSTGRES_PREFIX
will use the postgresql driver to parse the uriuris starting with
MARIADB_PREFIX
will first try to use MariaDB Connector/J driver (2.x) then fallback to MariaDB Connector/J 3.x driver.If the uri does not match any of these schemes, this method will return an empty set if unknown uris are allowed, or throw an exception if not.
-
tryParsePostgresConnectionUri
public static Set<String> tryParsePostgresConnectionUri(String connectionUri) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException
-
tryParseMySqlConnectionUri
public static Set<String> tryParseMySqlConnectionUri(String connectionUri) throws ClassNotFoundException, NoSuchMethodException, InstantiationException, IllegalAccessException, InvocationTargetException
-
tryParseMariaDb2xConnectionUri
public static Set<String> tryParseMariaDb2xConnectionUri(String connectionUri) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, NoSuchFieldException, InstantiationException
-
tryParseMariaDb3xConnectionUri
public static Set<String> tryParseMariaDb3xConnectionUri(String connectionUri) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException
-
-