grails – 隐藏数据库密码使用编解码器规范在datasource.groovy不工作
|
我在dataource.groovy中隐藏数据库密码 dataSource {
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "q59YgJCdHw3dshwlsa=="
passwordEncryptionCodec = DESCodec
dbname="mydbname"
}
跟随着艺术:http://jira.grails.org/browse/GRAILS-3620 我分别运行groovy编解码器类以得到加密的字符串,如下所示: 但是在将DESCodec类放在grails中的Utility包中,当我尝试启动服务器时,它不会启动但是直接关闭,当我直接放入正确的密码并注释掉编解码器和加密字符串时,它将启动.我假设没有找到编解码器类/我在配置中丢失的任何东西,如指定编解码器类需要引号或任何路径更改,或者我应该更改算法,通过DESCodec类是最后一个编解码器类链接. 我正在努力使配置环境特定和外部化,但我仍然需要密码在这里加密,然后在连接到数据库之前进行解密. 解决方法我认为最好的方法是外部环境特定的配置(特别是密码,但是URL,电子邮件地址等),然后在目标机器的文件系统上保护具有适当权限的配置文件.在Config.groovy(例如)中: grails.config.locations = [
"file:/etc/${appName}/conf/db.properties"
]
并在配置文件中: dataSource.username = "root" dataSource.password = "secret" 我通常这样做用于生产配置,但为了方便起见,在Config.groovy中保留dev / test配置.当在dev / test中运行时,如果找不到引用的配置文件,您只需在启动时收到警告.如果它找到它,那么它会覆盖Config.groovy中的内容 这有额外的优势,如果任何prod环境配置更改,您只需更改配置文件并重新启动应用程序,就不需要重新编译和重新部署war文件. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
