ktor hocon 配置不适用于一个密码变量

ktor hocon configuration not working for one password variable

我正在设置一个与 docker 中的 postgres 容器连接的 ktor api。当我硬编码时,我可以让一切正常工作。当我尝试使用 hocon 配置和打印值时,我可以看到我的 dburl 和 dbuser,但是当我打印我的 dbpassword 时,我得到一个类似值的地址。

这是我的 hocon 配置:

ktor {
    deployment {
        port = 8080
        port = ${?PORT}
    }
    application {
        modules = [ com.personal.ApplicationKt.module ]
    }
    security {
        ssl {
            keystore = ""
        }
    }
}
jwt {
    secret = "redacted"
    issuer = "https://jwt-provider-domain/"
    audience = "jwt-audience"
    realm = "ktor sample app"
}
db {
    jdbcUrl = "jdbc:postgresql://docker-compose-db-name:5432/db_name"
    dbUser = "redacted"
    dbPassword = "redacted_password"
}

这是我的应用程序代码,它试图将这些值用于 loading/migrating 我的数据库:

    private val appConfig = HoconApplicationConfig(ConfigFactory.load())
    private val dbUrl = appConfig.property("db.jdbcUrl").getString() 
    private val dbUser =  appConfig.property("db.dbUser").getString()
    private val dbPassword = appConfig.property("db.dbPassword").toString()  

    fun init() {
        Database.connect(hikari())
        // auto migration when spinning up db
        println("URL: $dbUrl")
        println("USER: $dbUser")
        println("PASSWORD: $dbPassword")
        val flyway = Flyway.configure().dataSource(dbUrl, dbUser, dbPassword).load()
        flyway.migrate()
    }

    private fun hikari(): HikariDataSource {
        val config = HikariConfig()
        println("URL: $dbUrl")
        println("USER: $dbUser")
        println("PASSWORD: $dbPassword")
        config.driverClassName = "org.postgresql.Driver"
        config.jdbcUrl = dbUrl
        config.username = dbUser
        config.password = dbPassword
        config.maximumPoolSize = 3
        // auto commit sql operations
        config.isAutoCommit = false
        // no dirty reads allowed. Only see data that was committed prior to start of statement
        config.transactionIsolation = "TRANSACTION_READ_COMMITTED"
        config.validate()
        return HikariDataSource(config)
    }

那三行打印出来: “URL: jdbc:postgresql://docker-compose-db-name:5432/db_name” “用户:已编辑” “密码:io.ktor.config.HoconApplicationConfig$HoconApplicationConfigValue@4b9df8a”

然后我得到了编辑失败的身份验证。当我对值进行硬编码时,它可以 100% 工作。我的密码是否过于隐晦或包含无法在 hoconstring 中使用的值?

问题是最后一次获取 db.dbPassword 值的调用是 toString 而不是 getString