Ktor HOCON配置读取数据库密码返回对象地址而非实际值问题排查
问题根因
你读取密码的代码调用方法错误,和密码复杂度、HOCON支持的字符没有任何关系。
你代码里dbUrl、dbUser的取值都是调用appConfig.property("xxx").getString()方法获取配置的字符串值,只有dbPassword调用的是toString():
// 错误写法 private val dbPassword = appConfig.property("db.dbPassword").toString()
appConfig.property()返回的是HoconApplicationConfigValue类型的配置对象,直接调用toString()只会输出对象的类名和内存地址,就是你日志里看到的io.ktor.config.HoconApplicationConfig$HoconApplicationConfigValue@4b9df8a,自然会导致数据库认证失败。
修复方案
把密码读取的代码改成调用getString()方法即可:
// 正确写法 private val dbPassword = appConfig.property("db.dbPassword").getString()
内容的提问来源于stack exchange,提问作者stegnerd
相关产品推荐
相关产品推荐

