据我所知,在Grails中,默认配置变量存储在Config.groovy中,一旦部署,属性就包含在战争中。显然,如果您需要更改它们而不重新部署应用程序,这将导致问题。但是,我刚刚在Grails AWS插件文档中阅读了以下内容:
“根据亚马逊的推荐,您可以使用.properties文件来处理此插件的密钥和访问密钥。”
...
“有时,您仍然无权访问文件系统,但不希望在配置文件中打开您的凭据”
(http://blanq.github.com/grails-aws/1.2.12.1/index.html)
在Config.groovy之外存储信用是否有某种安全优势?也许我错过了一些东西:/
答案 0 :(得分:4)
有几个具体原因,您不希望直接在WAR中包含安全信息。
因此,它提供了一定程度的安全性,但在其他情况下也提供了很多便利。
答案 1 :(得分:1)
有时你甚至需要隐藏开发人员的一些信誉。例如,它可以是paypal密钥和外包团队(你从未见过)。因此,您可以将此配置存储在服务器(/etc/myapp/config.properties
)上的某个位置,而无需将其访问权限提供给其他开发人员。
第二部分,关于'无权访问文件系统',意味着您可以在启动时,在命令行中指定此参数,而无需将其存储在任何位置。因此,即使任何有权访问服务器的人仍然无法查看凭据,至少在普通文件中
答案 2 :(得分:0)
我们使用外部属性文件来定义数据源详细信息,例如生产数据库用户名,密码,用户名等。
好处是 - 您不必签出代码并在生产服务器上安装Grails。您可以创建一个常见的war文件,上传并将其部署到生产服务器..