Merci pour la réponse ;)
Après avoir retourné le problème dans tous les sens j'ai finalement réussi à y faire fonctionner en modifiant la classe ComboSession fournie sur la doc à cette adresse: http://book.cakephp.org/2.0/fr/development/sessions.html#creer-un-gestionnaire-de-session-personnalise
App::uses('DatabaseSession', 'Model/Datasource/Session');
class ComboSession extends DatabaseSession implements CakeSessionHandlerInterface {
public function __construct() {
parent::__construct();
}
// Lit les données à partir d'une session.
public function read($id) {
$result = Cache::read($id);
if ($result) {
return $result;
}
return parent::read($id);
}
// écrit les données dans la session.
public function write($id, $data) {
$result = Cache::write($id, $data);
if ($result) {
return parent::write($id, $data);
}
return false;
}
// détruit une session.
public function destroy($id) {
$result = Cache::delete($id);
if ($result) {
return parent::destroy($id);
}
return false;
}
// retire les sessions expirées.
public function gc($expires = null) {
return Cache::gc() && parent::gc($expires);
}
}
En gros j'ai supprimé le paramètre $cacheKey lié au choix du système de cache à utiliser. La classe utilise donc désormais le système de cache par défault de mon application.
Cache::config('default', array('engine' => 'File'));
L'erreur de sécurité était donc liée au choix du système de cache.