37 * @author Ing. František Kučera (frantovo.cz) |
37 * @author Ing. František Kučera (frantovo.cz) |
38 */ |
38 */ |
39 public class DatabaseConnection implements AutoCloseable { |
39 public class DatabaseConnection implements AutoCloseable { |
40 |
40 |
41 private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName()); |
41 private static final Logger log = Logger.getLogger(DatabaseConnection.class.getName()); |
|
42 private static final String JDBC_PROPERTY_USER = "user"; |
|
43 public static final String JDBC_PROPERTY_PASSWORD = "password"; |
42 private DatabaseDefinition databaseDefinition; |
44 private DatabaseDefinition databaseDefinition; |
43 private Connection connection; |
45 private Connection connection; |
44 private Properties properties; |
46 private Properties properties; |
45 |
47 |
46 public DatabaseConnection(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException { |
48 public DatabaseConnection(DatabaseDefinition databaseDefinition, Properties properties) throws SQLException { |
47 this.databaseDefinition = databaseDefinition; |
49 this.databaseDefinition = databaseDefinition; |
48 this.properties = properties; |
50 this.properties = properties; |
49 |
51 |
|
52 if (properties.hasProperty(JDBC_PROPERTY_PASSWORD)) { |
|
53 log.log(Level.WARNING, "Passing DB password as CLI parameter is insecure!"); |
|
54 } |
|
55 |
50 Properties credentials = new Properties(); |
56 Properties credentials = new Properties(); |
51 credentials.add(new Property("user", databaseDefinition.getUserName())); |
57 credentials.add(new Property(JDBC_PROPERTY_USER, databaseDefinition.getUserName())); |
52 credentials.add(new Property("password", databaseDefinition.getPassword())); |
58 credentials.add(new Property(JDBC_PROPERTY_PASSWORD, databaseDefinition.getPassword())); |
53 credentials.setDefaults(databaseDefinition.getProperties()); |
59 credentials.setDefaults(databaseDefinition.getProperties()); |
54 properties.setDefaults(credentials); |
60 properties.setDefaults(credentials); |
55 java.util.Properties javaProperties = properties.getJavaProperties(); |
61 java.util.Properties javaProperties = properties.getJavaProperties(); |
56 |
62 |
57 connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties); |
63 connection = DriverManager.getConnection(databaseDefinition.getUrl(), javaProperties); |