2012-01-18 4 views
0

私のCatalystアプリケーションに認証を追加しています。アプリは別のシステムのポートですので、現在のバックオフィスをいくつかのものに使用する必要があります。DBIxを使用しないCatalyst認証

これらのうちの1つは、ユーザーデータベースです。そのSQLと私はそれをWebサービスを介してアクセスする必要があります。

次に、docsに続いて、この例のようにユーザー/パスワードのハッシュを使用して作業しています。また、DBIxを使用してCatalystチュートリアルをテストしました。

しかし、私は自分のモデルを接続して、実際のバックオフィスからユーザーを確認して取得する必要があります。

どこですか?私は認証プラグイン

$c->authenticate({ username => $username, password => $password } 

そして、私は(チュートリアルから)持っている設定で呼び出すコントローラから

__PACKAGE__->config('Plugin::Authentication' => { 
    default_realm => 'members', 
    realms => { 
     members => { 
      credential => { 
       class => 'Password', 
       password_field => 'password', 
       password_type => 'clear' 
      }, 
      store => { 
       class => 'DBIx::Class', 
       user_model => 'MyApp::User', 
       role_relation => 'roles', 
       role_field => 'rolename', 
      } 
     } 
    } 
}); 

だからここで私は私のウェブサービスモデルを呼び出すことができますか?

ありがとうございます。

更新日: 私は自分のwebservicesクエリを作成しました。結果がOKならば、取得したデータをこのハードコードされた領域に渡します。非常に、非常に、非常に醜いですが、私はその機能を提供しました。今私は再び深刻です。

答えて

1

あなたがauth store独自に作成する必要があるように見えます:

store => { 
    class => '+MyApp::Authentication::Store::NetAuth', 
    authserver => '192.168.10.17' 
} 

はまたCatalyst::Authentication::Store::Minimal

+0

感謝を見てください。私の認証データは "Webサービス"から来ますが、IPにアクセスできる既存の "Webサービス"ではありません。私はSOAP :: Liteを使ってリモートサーバーに問い合わせ、ユーザーとパスワードを送信し、ユーザーからのデータを返します。私は、取得したデータを認証の中でどのように、どこに送るべきか分かりません。 – MIguelele

関連する問題