Authen::UsersのデータベースハンドルをNanoAで使えた話

2010年4月24日
| コメント(0) | トラックバック(0) Authen::UsersのデータベースハンドルをNanoAで使えた話

どうにかなるものです。

NanoAのデータベースハンドルを使えればよかったのだが、生憎とそんな機能はついていなかった。

NanoAのconfigを使えば、NanoA本体に影響を及ぼさずにデータベースハンドルを入れ替えることが可能でした。

アプリケーション(今の場合はLightBBS)用のdbメソッドを作ることによって、NanoA::Config::dbを上書きしています。


こっちはなんとかできたのですが、Crypt::SaltedHashを利用するのはちょっと難しそうです。
Authen::Usersでnewした後に、プロパティを入れ替えればいけそうな気がしたのですが、認証の仕組みが違うので単純には行きませんでした。

Authen::Usersはデータベースから取ってきたsha変換済みのパスワードと、入力したパスワードをsha変換したモノとを比較しています。
そこまでがセットになっているのです。
しかし、Crypt::SaltedHashは、普通に変換するとsaltを自動的に入れてしまうので、単純に比較しても合わないのです。(元々それが特徴なわけですが)
比較するときは、変換済みのパスワードと入力したパスワードをCrypt::SaltedHashのvalidateメソッドに渡してやる必要があります。
すると、内部でsaltを解析して照合ができるようになります。

まあ、仕組みはわかりましたが。
さて、どうしたもんでしょう。

トラックバック(0)

このブログ記事に対するトラックバックURL:

コメントする

Google検索

Last.fm

このブログ記事について

このページは、のぶりんが2010年4月24日 13:52に書いたブログ記事です。

ひとつ前のブログ記事は「jQueryのプラグイン「ImageSwitch」を使ってみた」です。

次のブログ記事は「Feedをウェブから取ってきてタイトルのリストを表示してみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Creative Commons License
このブログのライセンスは クリエイティブ・コモンズライセンス.
Powered by Movable Type