Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 管理基于云的构建和部署的paypal api凭据的好方法是什么?_Java_Git_Scala_Paypal_Cloudbees - Fatal编程技术网

Java 管理基于云的构建和部署的paypal api凭据的好方法是什么?

Java 管理基于云的构建和部署的paypal api凭据的好方法是什么?,java,git,scala,paypal,cloudbees,Java,Git,Scala,Paypal,Cloudbees,我正在尝试确定管理基于云的构建和部署的paypal api凭据的最佳实践 我有一个使用paypal java sdk的scala应用程序。我有一个sdk_config.properties,其中包含我的paypal api凭据。我真的不想把这些凭证放在一边——我希望尽可能晚地将它们集成到应用程序中。我通过git管理我的源代码 我在cloudbees DEPLOY上使用Jenkins作业来构建我的应用程序并将其部署到cloudbees运行实例上 我想知道是否要使用某种自定义凭证加载器,或者是否有某

我正在尝试确定管理基于云的构建和部署的paypal api凭据的最佳实践

我有一个使用paypal java sdk的scala应用程序。我有一个sdk_config.properties,其中包含我的paypal api凭据。我真的不想把这些凭证放在一边——我希望尽可能晚地将它们集成到应用程序中。我通过git管理我的源代码

我在cloudbees DEPLOY上使用Jenkins作业来构建我的应用程序并将其部署到cloudbees运行实例上

我想知道是否要使用某种自定义凭证加载器,或者是否有某种方法可以在war之外管理该配置文件


我想我不是第一个想做这件事的人,所以欢迎你给我指点或建议,以避免我重新发明轮子

我不确定我是否找到了最佳实践,但我可以告诉你我自己是如何处理这些事情的

通常,我有某种配置文件(我通常使用php,所以config.php)。此文件包含易趣、贝宝、社交网站、数据库等可能需要的所有凭据

在实时服务器上,我将此文件放在web根目录之外的某个位置,因此它不可公开访问。在应用程序中,我通过绝对路径拉入配置文件

在我的Git repos中,我包含了一个config-sample.php,其中包含了所有的占位符以及详细的注释和空值。如果您的live配置文件位于同一位置(出于测试目的),则可以使用.gitignore确保它永远不会包含在git操作中

这样的话,任何人都可以使用我的回购协议,或者想要使用这个解决方案(如果你允许的话),都有一个配置文件需要包含的示例,然后我会提供一个建议,将它放在站点根目录之外,就像我解释的那样。如果您不允许人们这样使用这个东西,那么您甚至不需要处理配置示例

我喜欢基于一个为true/false的沙盒标志构建配置文件。我将沙盒和实时服务器的所有凭据都保存在配置文件中,参数是根据沙盒标志设置的。我还包括一小段代码,用于检查当前URL的子域并自动为我设置沙盒参数。这样,无论何时我在sandbox.whater.com上运行,它都会对沙盒服务器使用沙盒凭据,无论何时我在www.whater.com上运行,它都会对实时服务器使用实时凭据


这样,当我从测试转到live或visa时,我就不必担心要记得更新凭证了,这让开发人员痛苦了很多次

在这种情况下,您应该使用RUN@cloud . 这些都是加密的,可以使用系统属性访问。

谢谢您的回答。这正是我感兴趣的事情。具体来说,我感兴趣的是在JVM环境中做一些事情,其中部署工件是单个工件。我喜欢沙盒标志的想法。将属性外部化并使用映射而不是sdk_config加载它们。这里的正确答案是属性。谢谢你给我指明了正确的方向。不使用sdk_config.properties可以实现我的目标。