Итак, я работаю над приложением, которое до сих пор имеет горестное управление доступом, и требует правильного решения как можно скорее. Я добавил в компоненты CakePHP Auth и Acl в соответствии с учебником в Cookbook, и все это работает очень хорошо, поскольку, если я добавляю пользователя вручную, он создает запись в таблице aros соответствующим образом, SHA1-хеширует пароль надлежащим образом, все хорошие вещи.Добавление ACL в приложение CakePHP
Теперь для бит, который немного отличается от моего уровня мастерства. У нас есть 1000 имен в базе данных, которые должны стать Пользователями в новой системе. Я попытался сбросить их в таблицу Users с запросом MySQL, но есть две проблемы:
(1) Выполнение этого способа не создает записи в таблице aros. Я почти уверен, что смогу выстроить это для работы в определенное время, но есть ли какие-нибудь ярлыки, о которых я мог бы знать?
(2) Это то, что заставляет меня почесать голову. Когда я добавляю пользователя вручную, их пароль автоматически обрабатывается SHA1. Когда я вхожу на страницу пользователей/входа, вводимый пароль правильно сопоставляется с хэшированным паролем в db, и я получаю доступ. Однако, независимо от того, что я делаю с паролями, которые я удалял непосредственно в базу данных, я не могу получить страницу входа в систему, чтобы предоставить им доступ. Первоначально я хэшировал их с помощью функции MySQL SHA1; Я понимаю, что это не может быть хорошей идеей, потому что Торт посыпает лишней солью. Я попробовал хэшировать их через функцию Cake's Security :: hash. Я попытался позволить Cake сохранить каждый пароль в самой таблице Users, позволяя ему делать все, что захочет, за кадром, без вмешательства со мной.
В любом из этих случаев я не могу войти в систему, используя одну из этих комбинаций имени пользователя и пароля. Пароли выглядят хорошо и хэшируются, и они соответствуют паролям, которые я вводил после применения к ним Security :: hash. Что не хватает, что позволит мне это сделать?
Имеются ли у вас уже имеющиеся пароли для пользователей (_из вашего старого приложения_)? – joeb
@joeb, Нет, они ранее были разграблены (ужасно). Это голова. – thesunneversets
Вы подтвердили, что между функциями CakePHP и MySQL SHA1 возникла проблема? Кажется, я вижу эту проблему. –