显然 Play 1.x 有一个命令“play secret”,可以创建一个新的 application.secret,但我在 Play 2.x 中没有看到等效的命令。建议在从开发转移到生产时更改密钥,因此我需要找到一种方法为此制作新密钥。
6 回答
你说的对。我认为这个功能还没有在2.x
版本中实现。恐怕唯一的办法就是创建一个新项目。每个新项目都会生成一个新的密钥。然后只复制新生成的密钥。
我认为这个问题是针对您的问题提出的: https://groups.google.com/forum/#!topic/play-framework/aMyM_fDglSs中引用的https://github.com/n8han/giter8/issues/42
祝你好运。
编辑 2020-01-23:
看起来他们回到了驼峰式,所以在当前版本的 Play w/SBT 上应该是
sbt playGenerateSecret
编辑 2015-05-11:
正如@myk 所指出的,这现在已在 sbt 插件中实现,您需要运行:
sbt play-generate-secret
或者
sbt play-update-secret
编辑 2015-07-02
使用活化剂:
activator playGenerateSecret
这是在 Scala 控制台中执行此操作的方法:
$ scala
scala> val r = new java.security.SecureRandom
r: java.security.SecureRandom = java.security.SecureRandom@b4ca6f6
scala> (1 to 64).map(_=>(r.nextInt(74)+48).toChar).mkString.replaceAll("\\\\+", "/")
res4: String = cCU`liU?i^R3f:Tk3ekG9a0^hjtwADUi@X2OtjAqKG`vv/>dk@cq_QOnu47WQ<0_
你的秘密是关键现在是:
cCU`liU?i^R3f:Tk3ekG9a0^hjtwADUi@X2OtjAqKG`vv/>dk@cq_QOnu47WQ<0_
跑
sbt play-generate-secret
或者
sbt play-update-secret
如果您想更新 application.conf 中的现有密钥
更多信息在这里 https://www.playframework.com/documentation/2.3.2/ApplicationSecret
在玩 2.4 使用
activator playGenerateSecret
正如 adis 所提到的,您可以只创建一个随机字符串,即使它更长也没关系。两次使用 uuidgen 可以获得比键入更好的熵:
application.secret="44786442-c4a6-49b7-a8cc-c44c09c5471d-6b55adcc-efeb-4f6b-b997-b222f3877119"
在这里工作没有问题。
玩 2.6 需要
sbt playGenerateSecret
命令