早速変更点を確認していたのですが、app/config/core.phpのSession.timeoutのコメント内容が変更されており、おやっと思いました。
--- a/app/config/core.php +++ b/app/config/core.php @@ -167,7 +167,7 @@ Configure::write('Session.cookie', 'CAKEPHP'); /** - * Session time out time (in seconds). + * Session time out time (in minutes). * Actual value depends on 'Security.level' setting. */ Configure::write('Session.timeout', '120');
Session.timeoutの指定値が分として解釈されるようになった?
cake/libs/cake_session.phpの変更点も見てみます。
--- a/cake/libs/cake_session.php +++ b/cake/libs/cake_session.php /* ... 前略 ... */ @@ -460,28 +468,17 @@ class CakeSession extends Object { */ function __initSession() { $iniSet = function_exists('ini_set'); - if ($iniSet && env('HTTPS')) { ini_set('session.cookie_secure', 1); } + if ($iniSet && ($this->security === 'high' || $this->security === 'medium')) { + ini_set('session.referer_check', $this->host); + } - switch ($this->security) { - case 'high': - $this->cookieLifeTime = Configure::read('Session.timeout') * Security::inactiveMins(); - if ($iniSet) { - ini_set('session.referer_check', $this->host); - } - break; - case 'medium': - $this->cookieLifeTime = Configure::read('Session.timeout') * Security::inactiveMins(); - if ($iniSet) { - ini_set('session.referer_check', $this->host); - } - break; - case 'low': - default: - $this->cookieLifeTime = Configure::read('Session.timeout') * Security::inactiveMins(); - break; + if ($this->security == 'high') { + $this->cookieLifeTime = 0; + } else { + $this->cookieLifeTime = Configure::read('Session.timeout') * (Security::inactiveMins() * 60); } switch (Configure::read('Session.save')) { /* ... 後略 ... */
Security.levelが’medium’または’low’の場合、$this->cookieLifeTimeが以前より60倍、「分」として解釈されるようになっています。
ただし、$this->cookieLifeTimeは、セッションCookieの有効期限なのでセッション自体の有効期限ではありません。
セッションの有効期限は、これまで通り
$this->sessionTime = $this->time + (Security::inactiveMins() * Configure::read('Session.timeout'));
であり、Security.levelがhighであれば「Session.timeout * 10 (秒)」、mediumであれば「Session.timeout * 100 (秒)」、lowであれば「Session.timeout * 300 (秒)」のままです。
しかし、なんで誤解を招きそうなコメント&Cookieだけ期限が延長になったんでしょうか。