【问题标题】:Remove configurations from unrelated environments when building a Grails WAR构建 Grails WAR 时从不相关的环境中删除配置
【发布时间】:2013-02-13 09:59:55
【问题描述】:

在构建特定环境的 Grails WAR 文件时,来自其他环境的配置也包含在 WAR 文件中。例如,生产环境中的所有数据库连接属性也包含在为测试而构建的 WAR 文件中。即使配置被编译为类文件,从那里提取敏感数据也很简单。

为了提高安全性,我想从 WAR 文件中排除不相关的环境配置。有没有办法在 WAR 构建期间自动剥离此配置,还是我必须将这些配置外部化并单独部署?

【问题讨论】:

    标签: security grails configuration


    【解决方案1】:

    我想如果你能以某种方式分析字节码并准确计算出哪个Config$_closure3$_closure12 对应于你不需要的位,那么你可以在战争中用空闭包替换它,但这可能更麻烦比它的价值。我知道肯定没有简单的方法。

    我会将每个环境的配置放在一个单独的文件中。如果您将 prod 配置放在 web-app/WEB-INF/classes/myapp-prod.groovy 中(仍在环境块中),并将 dev 配置放在顶层目录的文件中,然后说

    grails.config.locations = ["classpath:myapp-prod.groovy", "file:myapp-dev.groovy"]
    

    那么只有 prod 配置会在战争中结束。虽然它完全是人类可读的,但将 prod 配置直接留在 Config.groovy 中(因此它被编译)并使用外部覆盖开发模式可能更安全。

    【讨论】:

      猜你喜欢
      • 2012-04-23
      • 2020-02-13
      • 2018-09-06
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多