配置错误[未设置应用程序密钥]

bjf*_*her 3 java scala playframework playframework-2.4

我在生产模式下运行Play 2.4服务器时遇到此错误:

play.api.UnexpectedException: Unexpected exception[ProvisionException: Unable to provision, see the following errors:

1) Error in custom provider, @6mh5cjo5l: Configuration error
  while locating play.api.libs.CryptoConfigParser
  while locating play.api.libs.CryptoConfig

...

Caused by: play.api.PlayException: Configuration error[Application secret not set]
Run Code Online (Sandbox Code Playgroud)

怎么修?

bjf*_*her 8

默认的Play模板使用以下内容:

play.crypto.secret="changeme"
Run Code Online (Sandbox Code Playgroud)

application.conf这需要改变在生产中使用.Play提供了一个实用程序来为您生成随机秘密:

./activator playGenerateSecret
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用它作为环境变量填充:

APPLICATION_SECRET=...
Run Code Online (Sandbox Code Playgroud)

conf/application.conf确保以下内容:

play.crypto.secret="changeme"
play.crypto.secret=${?APPLICATION_SECRET}
Run Code Online (Sandbox Code Playgroud)

它作为播放文件解释说:

如果设置了这样的环境变量,那么该配置中的第二行设置来自名为APPLICATION_SECRET的环境变量的秘密,否则,它将保留上一行中的密码.

然后错误就会消失.