2015-09-03 2 views
1

Я использую play-slick_2.11-1.0.1 + HikariCP 2.4.1 для доступа к SqlServer в своем приложении на основе Play4.
Соединение с базой данных в 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) 
    } 
Смежные вопросы