我正在使用 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/