2011-02-11 15 views
0

私はこれまで悲惨なアクセス制御を持っていて、できるだけ早く適切な解決策が必要なアプリケーションに取り組んできました。私はCookbookのチュートリアルに従ってCakePHP AuthとAclコンポーネントを追加しました。手動でユーザーを追加すると、適切にArosテーブルにエントリが作成され、SHA1はパスワードをハッシュします適切に、すべての良いもの。CakePHPアプリケーションにACLを追加する

私のスキルレベルを少し超えていることが判明しているビット用です。新しいシステムの下でユーザーになる必要があるデータベースには1000以上の名前があります。私はそれらをMySQLクエリでUsersテーブルにダンプしようとしましたが、2つの問題があります:

(1)このようにすると、arosテーブルにエントリが作成されません。私はかなりの時間を作業するためにこれを装備することができますが、私が知りたいかもしれないショートカットはありますか?

(2)これは、私の頭を傷つけるものです。手動でユーザーを追加すると、パスワードは自動的にSHA1でハッシュされます。ユーザー/ログインページからログインすると、入力したパスワードとdbのハッシュパスワードが正しく一致し、アクセスできます。しかし、私がデータベースに直接ダンプしたパスワードに何をしても、ログインページを取得してアクセス権を与えることはできません。当初、MySQL SHA1関数を使ってハッシュしました。ケーキは余分な塩に振りかけるので、これはいい考えではないかもしれないと私は理解しています。私はCakeのSecurity :: hash関数を通してそれらをハッシュしようとしました。私はCakeが各パスワードをUsersテーブル自体に保存するようにしていました。

これらのいずれの場合も、これらのユーザ名とパスワードの組み合わせのいずれかを使用してログインすることはできません。パスワードは良く見え、ハッシュされていて、Security :: hashを適用した後に入力したパスワードと一致します。何が欠けていると私はこれを働かせることができますか?

+0

既に使用しているユーザーのパスワード(従来のアプリケーション_から_)は既にハッシュされていますか? – joeb

+0

@joeb、いいえ、以前はハッシュしていませんでした(ややこしい)。それはヘッドスケーターです。 – thesunneversets

+0

CakePHPとMySQLのSHA1関数の間に問題があることを確認しましたか?私はその問題を見ているようです。 –

答えて

0

私があなたの立場にいたのなら、これを行うためにはShellを作成します.Cakeが持っているすべてのものを利用することができます。自動的に新しいAROレコードを追加し、Security::hashレコードを保存する前にハッシュします。

0

記録のため、ハッシングに問題はありませんでした。私は保存の時点でusergroup_idを指定していませんでした(後で設定する予定でした!)。あなたのユーザー名とパスワードの組み合わせが正しい場合でも、ユーザーグループの一部ではないアカウントでログインすることはできません。

関連する問題