beforeFilterでのセッションに関して

cakePHPでのセッションに関して
beforeFilte()のredirect()等でsession_id()が取れない場合

<?php
function beforeFilter(){
	var_dump(session_id());//空になっています
	exit();
}
?>


セッションが開始されていないので、
強制的にセッションを開始します

<?php
var $components = array("Session");

function beforeFilter(){
	$this->Session->read();//単純なsession_startだと新規のセッションになってしまいます
	var_dump(session_id());//正常な値が入る
	exit();
}
?>

ハック的なやり方な気がするので暇な時にコード追って
ちゃんと修正しようと思います。
ちなみにcakeのredirect()はセッションを自動で引き継がないので下記のようにラッピングしてます。

■redirect()

<?php
function redirect($url,$status=null){
	$c = "?";
	if(strstr($url,"?")){
		$c = "&";
	}
	$url .= sprintf("{$c}%s=%s"
		,Configure::read("Session.cookie")
		,urlencode(session_id())
	);
	parent::redirect($url,$status);
}
?>