Как подвергнуть цензуре/скрыть значение HOCON от появления в журналах Ktor

Использование Ktor в качестве веб-сервера и его настройка с помощью файла (HOCON) application.conf.

Я установил пароль по умолчанию для подключения к базе данных в конфигурации, а также возможность его переопределения с помощью переменной среды.

При запуске сервера конфигурации выводятся на консоль (и, возможно, в будущем сохраняются в логах), проблема в том, что пароль явно виден.

Кто-нибудь знает способ предотвратить это?

Представитель application.conf:

ktor {

    deployment {
        port = 8080
        port = ${?PORT}

        databaseUrl = ${?DATABASE_URL}
        databaseUser = ${?DATABASE_USER}
        databasePassword = ${?DATABASE_PASSWORD}
        ...
    }
}

Пример вывода сервера

...
# env var DATABASE_PASSWORD
"databasePassword" : "mysecretpassword",
# env var DATABASE_URL
"databaseUrl" : "jdbc:postgresql://localhost:5432/postgres",
# env var DATABASE_USER
"databaseUser" : "postgres",
...

person Morgan    schedule 02.12.2020    source источник


Ответы (1)


Вы можете поместить свои параметры с конфиденциальными значениями в раздел security, чтобы скрыть их внутри журналов. Вот пример:

ktor {
    deployment {
        port = 8085
        port = ${?PORT}
    }

    security {
        databaseUrl = ${?DATABASE_URL}
        databaseUser = ${?DATABASE_USER}
        databasePassword = ${?DATABASE_PASSWORD}
    }

    application {
        modules = [ com.example.ApplicationKt.module ]
    }
}
person Aleksei Tirman    schedule 10.12.2020
comment
Спасибо, это работает, если вы знаете, можете ли вы указать мне, где это задокументировано? Я хотел бы посмотреть, смогу ли я добавить и другие скрытые поля. - person Morgan; 16.12.2020