Попытка выяснить, какая строка выполняет перенаправление на страницу входа - PullRequest
0 голосов
/ 02 февраля 2011

Я реализовал безопасность в соответствии с руководством acl на сайте www.cakephp.org.Я пытаюсь выяснить, какая строка кода отвечает за перенаправление пользователей на страницу входа, если они еще не вошли в систему. В качестве теста я закомментировал несколько строк из функции beforefilter () в app_controller.php, чтобычто теперь это выглядит так:

   function beforeFilter() {
        //Configure AuthComponent
        $this->Auth->authorize = 'actions';
        $this->Auth->actionPath = 'controllers/';




    //   $this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
     //   $this->Auth->logoutRedirect = array('controller' => 'users', 'action' => 'login');

      //  $this->Auth->loginRedirect = array('controller' => 'alerts', 'action' => 'home');
       // $this->Auth->loginRedirect = array('controller' => 'schedules', 'action' => 'index');
        $this->Auth->allowedActions = array('display');


    }

Но меня все еще перенаправляют на страницу входа.

Причина, по которой я спрашиваю об этом, заключается в том, что мой сайт cakephp обслуживаетсячерез прокси-сервер, и мне нужно использовать относительные URL-ссылки, но при перенаправлении входа используется абсолютная ссылка.

1 Ответ

1 голос
/ 02 февраля 2011

Фактическое перенаправление выполняется в AuthComponent :: startup (). Там вызывается AuthComponent :: isAuthorized (), и в вашем случае (с настроенным Acl) для проверки будет использоваться Acl.

Изменения настроек вашего beforeFilter () не повлияют на поведение. Скорее всего, вы не можете выполнить Acl-> check () и будете перенаправлены на строку 450.

Смотрите здесь - https://github.com/cakephp/cakephp/blob/master/cake/libs/controller/components/auth.php#L309, и https://github.com/cakephp/cakephp/blob/master/cake/libs/controller/components/auth.php#L450

Чтобы справиться с проблемой, связанной с перенаправлением, посмотрите на возможно переопределяющий Helper :: url (). Создайте app / app_helper.php, определите класс AppHelper, который расширяет Helper ... и предоставьте метод url. Изучите переданные аргументы, верните соответствующий URL.

...