将ACL添加到CakePHP应用程序

时间:2011-02-11 01:06:53

标签: mysql cakephp sha1 acl authentication

所以我一直致力于一个迄今为止具有糟糕访问控制的应用程序,并且需要一个适当的解决方案。我已根据Cookbook中的教程添加了CakePHP Auth和Acl组件,并且它运行良好,只要我手动添加用户,它就会在aros表中相应地创建一个条目,SHA1-hashes密码适当的,所有的好东西。

现在我的技能水平已经超出了我的技能水平。我们在数据库中有1000多个名称,需要成为新系统下的用户。我尝试使用MySQL查询将它们转储到Users表中,但有两个问题:

(1)这样做不是在aros表中创建条目。我很确定我可以在给定的时间内完成这项工作,但是我有什么捷径可能想知道吗?

(2)这是导致我挠头的那个。当我手动添加用户时,他们的密码会自动进行SHA1散列。当我从users / login页面登录时,我输入的密码与db中的哈希密码正确匹配,我可以访问。但是,无论我对我直接转储到数据库中的密码做了什么,我都无法获取登录页面以授予对它们的访问权限。最初我用MySQL SHA1函数对它们进行了哈希处理;我知道这可能不是一个好主意,因为蛋糕洒上了额外的盐。我尝试通过Cake的Security :: hash函数对它们进行哈希处理。我尝试让Cake将每个密码保存到Users表本身,让它在幕后做任何需要的哈希,而不会受到我的干扰。

在这些情况下,我都无法使用其中一个用户名/密码组合登录。密码看起来很好并且经过哈希处理,并且在我将Security :: hash应用到它们之后,它们与我输入的密码相匹配。我缺少什么才能使我的工作得到满足?

2 个答案:

答案 0 :(得分:0)

如果我在你的位置,我会建立一个Shell来处理这个问题,这样你就可以利用Cake所拥有的所有东西,例如自动添加新的ARO记录并使用{ {1}}在保存记录之前处理散列。

答案 1 :(得分:0)

为了记录,散列不是问题。我没有在保存时指定usergroup_id(计划稍后设置它!)。我猜您无法使用不属于用户组的帐户登录,即使您的用户名/密码组合正确也是如此。