我在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编解码器类以得到加密的字符串,如下所示:
groovy grails-app / utils / DESCodec.groovy mypassword_string_text.
但是在将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文件.
原文地址:https://www.jb51.cc/mssql/75571.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。