首页 > 解决方案 > Security.salt 问题

问题描述

我有一个运行 PHP 7.2.14 和 CakePHP 3.7.9 的 docker 容器

我看到的问题是由于某种原因 Security.salt 是空的。这是 app.php 文件中的标准行:

'Security' => [
        'salt' => env('SECURITY_SALT', 'mySalt')
],

当我检查代码中的值时,Configure::read('Security.salt')它是空的。如果我把error_log(env('SECURITY_SALT', 'blah'));blah在日志文件中看到。所以这意味着env()工作正常,盐应该设置为mySalt.

那么这是一个错误并以某种方式Security.salt被覆盖吗?还是仅在内部使用并在内部读取后设置为 null 的默认行为?

标签: cakephpconfigurationcakephp-3.x

解决方案


还是仅在内部使用并在内部读取后设置为 null 的默认行为?

这有点像它的工作原理,是的。在 3.7 应用程序模板中,某些配置在某些时候被“使用”,默认情况下是Cache, Datasources, EmailTransport, Email, Log, 和Security.salt,请参阅您的应用程序config/bootstrap.php文件。

https://github.com/cakephp/app/blob/3.7.1/config/bootstrap.php#L150-L155

如果您想稍后访问此类配置,那么您应该通过使用它的类来访问它,在您的情况下是Security类,即通过

\Cake\Utility\Security::getSalt()

也可以看看


推荐阅读