2011-12-31 31 views
12

Mỗi ứng dụng Play mới đều nhận được một bí mật ứng dụng mới được tạo vào tệp cấu hình của ứng dụng.Làm cách nào để giữ bí mật ứng dụng?

application.secret=asdfadsfdasf

Tôi đang phát triển một ứng dụng mã nguồn mở sẽ được triển khai trên Heroku. Làm cách nào để giữ bí mật ứng dụng bí mật (ví dụ: không cam kết nó vào kiểm soát nguồn)?

Bí mật ứng dụng được sử dụng chính xác ở đâu? Có lẽ vì mục đích giới hạn của tôi, tôi thực sự không phải giữ bí mật nó?

Trả lời

24

Bạn có thể ngoài bí mật dưới dạng biến môi trường.

Trong conf/application.conf Chỉ cần thay thế

application.secret=abc123... 

với

application.secret=${APP_SECRET} 

và sau đó thiết lập cấu hình var này trong Heroku với:

$ heroku config:add APP_SECRET=abc123... 

Bây giờ bạn có thể quản lý bí mật trên một ứng dụng mỗi cơ sở và tránh kiểm tra chúng thành kiểm soát phiên bản.

+0

Điều này nghe có vẻ đúng - cảm ơn! – ripper234

+0

và nếu bạn không sử dụng heroku để triển khai? có một tùy chọn để sử dụng một cái gì đó như jasypt –

0

Có vẻ như bí mật đó là quan trọng, nhưng bạn có thể tạo ra những bí mật mới cho sản xuất và phát triển. Vì vậy, để phát triển bạn có thể kiểm tra nó vào SVN sau đó tạo ra một cái khác nhau cho sản xuất.

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

+0

Nhưng ứng dụng của tôi.conf trong SVN (tốt, git) sẽ được triển khai để sản xuất. Rephrasing, tôi muốn giữ ứng dụng của tôi.conf dưới sự kiểm soát nguồn. Việc triển khai sản xuất của tôi sẽ chỉ là 'git push' cho Heroku. Vậy, tôi có nên chạy tập lệnh hậu triển khai để thay đổi khóa ứng dụng không? Nhưng ... là kịch bản này được lưu trữ dưới sự kiểm soát nguồn? Một số giải pháp thiết thực khi triển khai cho Heroku là gì? – ripper234

+0

Tôi cho rằng tôi đã ủng hộ không chỉ đơn giản bằng cách sử dụng git push, nhưng bạn cần một kịch bản tạo ra một khóa mới trước khi đẩy vào sản xuất để không có nó sẽ không được kiểm tra vào kiểm soát nguồn. Câu hỏi tôi không chắc chắn về là nếu bạn tái tạo chìa khóa đó mỗi khi bạn đẩy sẽ tạo ra một vấn đề? Nếu không, điều đó không quan trọng để lưu trữ bí mật trong sản xuất. – chubbsondubs

+0

Tôi không nghĩ rằng việc thay đổi khóa ứng dụng là một ý tưởng hay. Nếu bạn đăng nhập vào một thứ gì đó (ví dụ: băm mật khẩu người dùng), bạn cần có khả năng lặp lại chữ ký chính xác này và tôi tin rằng điều này (nên) sử dụng bí mật ứng dụng. – ripper234

Các vấn đề liên quan