Play Framework尝试使用Windows用户名访问数据库

时间:2015-07-24 02:04:50

标签: postgresql playframework playframework-2.0 slick-2.0 play-slick

我在conf文件夹中有一个db.conf,如下所示:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://62.210.145.112/babybets"
db.default.username=postgres
db.default.password="my_password"

它包含在application.conf中:

include "db.conf"

信息肯定是正确的,因为我使用这个相同的jdbc连接字符串,user / pass将Intellij DB视图连接到数据库。

当我尝试访问任何页面时,出现错误:

play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [default]]
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:94) ~[play_2.10-2.3.8.jar:2.3.8]
    at play.api.Configuration.reportError(Configuration.scala:743) ~[play_2.10-2.3.8.jar:2.3.8]
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:247) ~[play-jdbc_2.10-2.3.2.jar:2.3.2]
    at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:238) ~[play-jdbc_2.10-2.3.2.jar:2.3.2]
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) ~[scala-library-2.10.5.jar:na]
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "John"
    at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:293) ~[postgresql-9.1-901-1.jdbc4.jar:na]
    at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:108) ~[postgresql-9.1-901-1.jdbc4.jar:na]
    at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) ~[postgresql-9.1-901-1.jdbc4.jar:na]
    at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125) ~[postgresql-9.1-901-1.jdbc4.jar:na]
    at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30) ~[postgresql-9.1-901-1.jdbc4.jar:na]

在上面你可以看到它尝试使用我的Windows登录&#34; John&#34;来连接数据库。

我和代理Ransack一起完成了这个项目并尝试了以下(不区分大小写)正则表达式:

[^\\]john[^\\]

它只与上述错误日志匹配。

问题:为什么使用我的Windows登录来连接数据库?如何防止这种情况?

仅供参考,我的build.sbt看起来像这样:

name := "babyBets2"

version := "1.0"

lazy val `babybets2` = (project in file(".")).enablePlugins(PlayScala)

scalaVersion := "2.10.5"

libraryDependencies ++= Seq( cache , ws )

libraryDependencies ++= Seq("postgresql" % "postgresql" % "9.1-901-1.jdbc4",
  "com.typesafe.play" %% "play-slick" % "0.8.0",
  "ws.securesocial" %% "securesocial" % "2.1.4" )

unmanagedResourceDirectories in Test <+=  baseDirectory ( _ /"target/web/public/test" )  

1 个答案:

答案 0 :(得分:0)

好的,这很疯狂,Play版本之间存在差异:

https://www.playframework.com/documentation/2.4.x/ScalaDatabase https://www.playframework.com/documentation/2.3.x/ScalaDatabase

db.default.username=postgres

VS

db.default.user=postgres

显然,如果没有提供用户,播放显示没有有用的错误消息,并尝试连接到Windows登录!