【发布时间】:2012-01-30 23:10:17
【问题描述】:
每个新的 Play 应用都会在其配置文件中生成一个新的应用机密。
application.secret=asdfadsfdasf
我正在开发一个将部署在 Heroku 上的开源应用程序。如何将应用程序保密(例如,不将其提交到源代码管理)?
应用机密到底用在了哪里?也许出于我有限的目的,我真的不必保守秘密?
【问题讨论】:
标签: java heroku playframework
每个新的 Play 应用都会在其配置文件中生成一个新的应用机密。
application.secret=asdfadsfdasf
我正在开发一个将部署在 Heroku 上的开源应用程序。如何将应用程序保密(例如,不将其提交到源代码管理)?
应用机密到底用在了哪里?也许出于我有限的目的,我真的不必保守秘密?
【问题讨论】:
标签: java heroku playframework
您可以将密钥外部化为环境变量。
在conf/application.conf 中直接替换
application.secret=abc123...
与
application.secret=${APP_SECRET}
然后在 Heroku 中设置这个配置变量:
$ heroku config:add APP_SECRET=abc123...
现在您可以基于每个应用管理机密,避免将它们检入版本控制。
【讨论】:
看起来这个秘密很重要,但您可以为生产和开发生成新的秘密。因此,对于开发,您可以将其签入 SVN,然后生成一个不同的用于生产。
【讨论】:
git push 到 Heroku。那么,我应该运行一个部署后脚本来更改应用程序密钥吗?但是......这个脚本是否存储在源代码管理下?部署到 Heroku 时有哪些实用的解决方案?