Добавление ACL в приложение CakePHP - PullRequest
0 голосов
/ 11 февраля 2011

Итак, я работал над приложением, которое до сих пор имеет ужасный контроль доступа и нуждается в правильном решении как можно скорее.Я добавил в компоненты CakePHP Auth и Acl в соответствии с руководством в Поваренной книге, и все это работает довольно хорошо, поскольку, если я добавляю пользователя вручную, он соответствующим образом создает запись в таблице aros, SHA1-хэширует парольсоответственно, все хорошее.

Теперь немного, что выходит за рамки моего уровня навыков.У нас есть более 1000 имен в базе данных, которые должны стать пользователями в новой системе.Я попытался сбросить их в таблицу Users с помощью запроса MySQL, но есть две проблемы:

(1) При таком способе записи в таблице aros не создаются.Я почти уверен, что смогу настроить это на работу, если у меня будет время, но есть ли какие-нибудь ярлыки, о которых я хотел бы знать?

(2) Это тот, который заставляет меня чесать голову.Когда я добавляю пользователя вручную, его пароль автоматически SHA1-хэшируется.Когда я вхожу со страницы пользователей / входа в систему, пароль, который я ввожу, правильно соответствует хешированному паролю в БД, и я получаю доступ.Однако, независимо от того, что я делаю с паролями, которые я сбросил непосредственно в базу данных, я не могу получить страницу входа, чтобы предоставить им доступ.Первоначально я хэшировал их с помощью функции MySQL SHA1;Я понимаю, что это может быть не очень хорошая идея, потому что пирог посыпается дополнительной солью.Я попытался хэшировать их через Cake Security :: hash function.Я попытался позволить Cake сохранить каждый пароль в самой таблице Users, позволяя ему делать любое хэширование за кулисами без вмешательства со стороны меня.

Ни в одном из этих случаев я не могу войти в систему, используя одну из этих комбинаций имени пользователя и пароля.Пароли выглядят хорошо и хэшируются, и они совпадают с паролями, которые я ввожу после того, как применил к ним хэш Security ::.Чего не хватает, что позволит мне заставить это работать?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2011

Для справки, это не было проблемой с хешированием.Я не указывал usergroup_id в момент сохранения (планировал установить его позже!).Я полагаю, что вы не можете войти в систему с учетной записью, которая не входит в группу пользователей, даже если ваше имя пользователя и пароль верны.

0 голосов
/ 11 февраля 2011

Если бы я был на вашем месте, я бы построил Shell, чтобы справиться с этим, сделав это за вас, таким образом вы сможете использовать все, что имеет Cake, например, автоматическое добавление новой записи ARO и использование Security::hashобрабатывать хеширование перед сохранением записи.

...