|
45 | 45 | public class MongoDb implements DbManager { |
46 | 46 | private static final String DATABASE_NAME = "admin"; |
47 | 47 | private static final String MONGO_USER = getEnvOrDefault("MONGO_USER", "root"); |
48 | | - private static final String MONGO_PASSWORD = getEnvOrDefault("MONGO_PASSWORD", "rootpassword"); |
| 48 | + private static final String MONGO_PASSWORD = getRequiredEnv("MONGO_PASSWORD"); |
49 | 49 | private MongoClient client; |
50 | 50 | private MongoDatabase db; |
51 | 51 |
|
52 | | - /** |
53 | | - * Helper method to get environment variable with fallback. In production, MONGO_PASSWORD MUST be |
54 | | - * set as environment variable. |
55 | | - */ |
| 52 | + /** Helper method to get environment variable with fallback for non-secret values. */ |
56 | 53 | private static String getEnvOrDefault(String key, String defaultValue) { |
57 | 54 | String value = System.getenv(key); |
58 | 55 | if (value == null || value.isEmpty()) { |
59 | | - LOGGER.warn( |
60 | | - "Environment variable {} not set. Using default (NOT RECOMMENDED FOR PRODUCTION)", key); |
| 56 | + LOGGER.warn("Environment variable {} not set. Using default value {}", key, defaultValue); |
61 | 57 | return defaultValue; |
62 | 58 | } |
63 | 59 | return value; |
64 | 60 | } |
65 | 61 |
|
| 62 | + /** Helper method to get required environment variables for secrets. */ |
| 63 | + private static String getRequiredEnv(String key) { |
| 64 | + String value = System.getenv(key); |
| 65 | + if (value == null || value.isEmpty()) { |
| 66 | + throw new IllegalStateException( |
| 67 | + String.format("Required environment variable %s is not set or empty", key)); |
| 68 | + } |
| 69 | + return value; |
| 70 | + } |
66 | 71 | void setDb(MongoDatabase db) { |
67 | 72 | this.db = db; |
68 | 73 | } |
|
0 commit comments