Как я могу объединить помощник проверки подлинности CakePHP со вторым методом проверки подлинности? - PullRequest
0 голосов
/ 29 февраля 2012

Я уже некоторое время пользуюсь помощником CakePHP для аутентификации, и, хотя он был успешным, недавно меня попросили переоборудовать нашу систему.Мы должны позволить пользователям входить в систему, используя свои учетные данные Active Directory.

На самом деле аутентификация пользователей проста, и у меня уже есть код для этого.Однако сам Auth окутан тайной, и я еще не плавал в его исходном коде.Я хотел бы, чтобы система попыталась выполнить аутентификацию с использованием стандартного метода аутентификации, а в случае сбоя - откат в Active Directory и попытка аутентификации таким образом.

База данных, я полагаю,Мне нужно изменить таблицу пользователей, чтобы каким-то образом хранить учетные данные Active Directory (достаточно просто сохранить имя пользователя AD, поскольку это всего лишь ссылка), а затем вручную войти в систему этого пользователя. Есть ли способ просто сказать Authчто «Эй, я вошел как этот пользователь сейчас», не выполняя POST для входа в систему ()?

Основная причина, по которой я делаю все это, состоит в том, чтобы избежать необходимости переписывать тонны кода в другом месте впроект, полностью отказавшись от аутентификации.Это может быть плохой идеей, хотя, если я представлю некоторую скрытую незащищенность, которая укусит меня позже.

О: Мы используем CakePHP 1.3.Я не против обновления проекта до версии 2.0, но я буду избегать его, если нет веских причин для этого.

1 Ответ

1 голос
/ 29 февраля 2012

Полагаю, вы можете просто позвонить: $Auth->login($user);, где $ user содержит запрашиваемые данные. Поэтому, если у вас есть учетные данные Active Directory, связанные с записью учетной записи пользователя в базе данных, вы можете просто сделать:

$user = $this->User->find('first', array('conditions' => array({ACTIVE RECORD SEARCH})));
$Auth->login($user);

и теперь вы вошли как этот пользователь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...