我的Google App Engine应用程序包括特权凭据(如OAuth和cookie签名密钥),我不想将它们检入到源代码控制中(即Git)。
我已经考虑将这些存储为appengine-web.xml
文件中的系统属性或环境变量,但是这个文件包含许多其他我想要版本化的内容。在哪里存储“秘密”的应用程序数据是一个好的选择,以便我可以轻松地将其排除在源代码控制之外?
我的Google App Engine应用程序包括特权凭据(如OAuth和cookie签名密钥),我不想将它们检入到源代码控制中(即Git)。
我已经考虑将这些存储为appengine-web.xml
文件中的系统属性或环境变量,但是这个文件包含许多其他我想要版本化的内容。在哪里存储“秘密”的应用程序数据是一个好的选择,以便我可以轻松地将其排除在源代码控制之外?
对于Java,我推荐使用spring-boot的外部化配置策略。这个想法是一堆配置源,位于顶部的覆盖下面的。
第4个通常在用户主目录的隐藏文件夹中,例如~/.myapp/application.yml
。只有用户可以读取该文件。
对于您的问题,非机密的、版本控制的属性直接放在源代码中(上面的第5个)。机密信息也可以放在第5个位置,但使用虚拟值。真正的机密信息会在运行时从1、2、3或4中覆盖虚拟值。
您可以使用spring-boot或编写自己的代码遵循相同的策略。
.gitignore
排除它们。.gitignore
。我想找出这个领域的最佳实践。我应该将这些内容存储在未版本化的Java文件中吗?是否有一种方法可以从appengine-web.xml
包含另一个文件? - mustpax