2011-12-31 9 views
12

Cada nueva aplicación Play obtiene una nueva aplicación secreta generada en su archivo de configuración.¿Cómo mantener la aplicación secreta en secreto?

application.secret=asdfadsfdasf

Estoy desarrollando una aplicación de código abierto que se desplegará en Heroku. ¿Cómo puedo mantener la aplicación secreta en secreto (por ejemplo, no comprometerla con el control de código fuente)?

¿Dónde se usa exactamente la aplicación secreta? Quizás para mis propósitos limitados, realmente no tengo que mantenerlo en secreto.

Respuesta

24

Puede externalizar el secreto como una variable de entorno.

En conf/application.conf Sólo tiene que sustituir

application.secret=abc123... 

con

application.secret=${APP_SECRET} 

y luego establecer esta configuración var en Heroku con:

$ heroku config:add APP_SECRET=abc123... 

Ahora puede administrar secretos en una aplicación per base y evite verificarlos en el control de la versión.

+0

Esto suena bien, ¡gracias! – ripper234

+0

y si no vas a usar heroku para implementar? hay una opción para usar algo como jasypt –

0

Parece que ese secreto es importante, pero puede generar otros nuevos para la producción y el desarrollo. Entonces, para el desarrollo, puede verificarlo en SVN y luego generar uno diferente para la producción.

http://www.playframework.org/documentation/1.0/production

+0

Pero mi application.conf en SVN (bueno, git) se desplegará en la producción. Parafraseando, quiero mantener mi application.conf bajo control de fuente. Mi despliegue de producción será solo un 'git push' para Heroku. Entonces, ¿debería ejecutar una secuencia de comandos posterior a la implementación para cambiar la clave de la aplicación? Pero ... ¿este script está almacenado bajo el control de la fuente? ¿Cuáles son algunas soluciones prácticas al implementar en Heroku? – ripper234

+0

Supongo que estaba defendiendo no solo el uso de git push, sino que necesitaría un script que generara una nueva clave antes de pasar a la producción para que no se verificara en el control de fuente. La pregunta de la que no estoy seguro es si regeneraste esa clave cada vez que presionaste, ¿eso crearía un problema? Si no, no sería tan importante almacenar el secreto en producción. – chubbsondubs

+0

No creo que cambiar la clave de la aplicación sea una buena idea. Si inicia sesión en algo (por ejemplo, tiene una contraseña de usuario), debe poder repetir esta firma exacta, y creo que esto (debería) utilizar la aplicación en secreto. – ripper234

Cuestiones relacionadas