database - Play + Slick + HikariCP 应用程序中的加密数据库密码

标签 database playframework slick hikaricp

我正在使用 play-slick_2.11-1.0.1 + HikariCP 2.4.1 来访问基于 Play4 的应用程序中的 SqlServer。
application.conf中的数据库连接:

slick.dbs.myDatabase = {
  driver="com.typesafe.slick.driver.ms.SQLServerDriver$"
  db{
    url = "jdbc:sqlserver://sqlserverhost"
    driver = com.microsoft.sqlserver.jdbc.SQLServerDriver
    user = "admin"
    password = "ENCRYPTED_PASSWORD"
  }
}

问题是这里配置的数据库密码必须根据我们公司的政策进行加密。

如何注入(inject)解密代码来解密连接密码?

最佳答案

刚刚找到解决方案:

  def createDecryptedDbConfig (dbConfigProvider: DatabaseConfigProvider) : DatabaseConfig[JdbcProfile] = {
    val dbConfig = dbConfigProvider.get[JdbcProfile]
    val decryptedConfig = dbConfig.config.
      withValue("db.user", ConfigValueFactory.fromAnyRef(decrypt(dbConfig.config.getConfig("db").getString("user")))).
      withValue("db.password", ConfigValueFactory.fromAnyRef(decrypt(dbConfig.config.getConfig("db").getString("password"))))
    DatabaseConfig.forConfig[JdbcProfile]("", decryptedConfig)
  }

关于database - Play + Slick + HikariCP 应用程序中的加密数据库密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32385411/

相关文章:

api - 我应该使用单独的 REST 后端项目和 javascript 重型前端吗?

scala - Scala Slick 3.0 中的随机行

mysql - 数据库查询问题与每行的计数

c# - 为什么我没有收到任何错误,但数据库没有插入记录?

mysql - 删除所有没有表的模式

java - 如何使用API​​而不是硬编码字符串进行sqlite upsert?

playframework - 有没有办法在游戏中使用 EntityManager !框架 1.2.x 404 页面?

java - GAE 上生产应用程序的 Play 框架

scala - Play Framework : Slick does not know how to map the given types

scala - Slick 3.0 通用 CRUD 实现中的类型参数绑定(bind)错误