我的Google App Engine應用程序包括我不想簽入源代碼管理(即Git)的特權憑證(如OAuth和cookie簽名密鑰)。使用Google App Engine管理版本控制之外的安全配置JDK
我曾考慮將這些文件作爲系統屬性或環境變量存儲在appengine-web.xml
文件中,但是該文件包含了許多其他我想要版本的內容。哪裏可以存儲「祕密」應用程序數據的好地方,以便我可以輕鬆地將其從源代碼控制中排除?
我的Google App Engine應用程序包括我不想簽入源代碼管理(即Git)的特權憑證(如OAuth和cookie簽名密鑰)。使用Google App Engine管理版本控制之外的安全配置JDK
我曾考慮將這些文件作爲系統屬性或環境變量存儲在appengine-web.xml
文件中,但是該文件包含了許多其他我想要版本的內容。哪裏可以存儲「祕密」應用程序數據的好地方,以便我可以輕鬆地將其從源代碼控制中排除?
我通常會將憑據存儲在安全存儲庫(只能由超級用戶訪問的文件中),然後生成後生成腳本。在源代碼控制中,我在屬性文件中有一個虛擬密碼,然後在生成後運行後構建腳本,並將虛擬密碼替換爲真實密碼。這樣密碼就不在源代碼控制中,而是在每次構建時顯示出來。這確實取決於自動構建/部署過程,但它非常有效。
對於Java,我推薦使用spring-boot的策略externalized configuration。這個想法是一堆配置資源,其中最重要的是覆蓋下面的配置資源。
無。4通常位於用戶主目錄的隱藏文件夾中,例如~/.myapp/application.yml
。只有用戶可以讀取該文件。
對於你的問題,非祕密的,版本控制的屬性直接放在源代碼中(上面的第5項)。祕密也可以放在5中,但是有虛擬值。真正的祕密在運行時從1,2,3或4覆蓋虛擬值。
您可以使用spring-boot或按照相同的策略編寫自己的代碼。
嗨@mustpax,你有沒有找到辦法做到這一點? – Jaap 2015-09-12 17:03:06