【发布时间】:2017-02-08 14:10:33
【问题描述】:
我正在尝试配置 Postgres 以接收使用 md5 加密密码的连接。我阅读了大量手册并按照说明进行操作,但我没有成功。
我们有几个 docker 容器,其中之一是我们使用 init_db.sh 脚本配置的 Postgres 9 容器。运行容器的最终配置是:
listen_addresses = '*'
local all all md5
host all all all md5
运行:lsof -i tcp:5432(我现在在我的 Mac 上运行),产生了这个:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
com.docke 17454 sigals 36u IPv4 0x13ec351b99f025cd 0t0 TCP *:postgresql (LISTEN)
com.docke 17454 sigals 37u IPv6 0x13ec351b8ce8a025 0t0 TCP localhost:postgresql (LISTEN)
当我启动使用加密密码运行的容器时,我得到: 错误 org.apache.tomcat.jdbc.pool.ConnectionPool:182 - 无法创建池的初始连接。
2017-02-08T14:07:43.438478547Z org.postgresql.util.PSQLException: FATAL: password authentication failed for user "myuser"
当我将密码作为明文输入时,它可以工作。
当我仅将 IP 配置为 localhost 时,加密密码和明文密码都有效。
我配置错了什么?
【问题讨论】:
-
“当我将密码作为明文输入时,它可以工作。”是什么意思?.. 你把密码放在哪里?
-
这是一个使用 Hibernate 的 sprint-boot 应用程序,密码位于 application.properties 中的一个名为:spring.datasource.password 的属性中
-
那么您可能会将
hba.conf中的md5与您传递给db 进行身份验证的md5 哈希混淆?... -
@VaoTsun 你是什么意思?
-
当您在 hba.conf 中有 md5 时,并不意味着您应该使用 md5 代替您的密码。抱歉 - 我没有使用 Hibernate 的经验。只是那句话“当我将密码作为明文输入时,它可以工作。”给了我想法,您尝试使用密码哈希来通过身份验证
标签: postgresql jdbc docker tcp md5