특정 컨트롤러에 대해 SSL을 적용하고 다른 모든 것에 대해서는 SSL을 제거하고 싶습니다. 내가 레거시 응용 프로그램을 지원하고있어특정 컨트롤러에 대해 SSL을 적용하는 가장 좋은 방법은 무엇입니까?
$ssl = $this->request->is('ssl');
$forceSecured = in_array($this->request->controller, array('Orders', 'Customers'));
//remove SSL for non-ssl pages
if ($ssl && !$forceSecured) {
return $this->redirect(Router::match(
$this->request->params,
$this->request,
array('absolute' => true, 'scheme' => 'http://')
)
);
}
// Force ssl on for ssl pages
if (!$ssl && $forceSecured) {
return $this->redirect(Router::match(
$this->request->params,
$this->request,
array('absolute' => true, 'scheme' => 'https://')
)
);
}
, 그래서 열심히 여러 가지고 : 나는 내가 기대했던대로 작동하지 않았다, 사용자 정의 컨트롤러 클래스의 _init()에 약간의 시간 전에 조각을했다 코드화 된 경로가 정의되었습니다. 나는 Router :: connect에서 핸들러를 사용할 수있을 것이라고 확신하지만, 나는 모든 요청에 대해 체크를하고 싶다. 계속 경로가 여기 갈 길입니까?
'Response' 객체를 반환하면 문제가 발생합니다. 또한, 나는 그것을 충분히 추상화하지 않았다. 사이드 노트 '$ this-> redirect line'에 닫는 괄호가 없습니다. –
거기, 고쳐 줬어. –