2015-09-03 24 views
1

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

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" 
    } 
} 

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

如何注入我的解密代码以解密连接密码?

回答

1

就找到了解决办法:

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) 
    } 
相关问题