2012-01-18 45 views
0

我正在向我的Catalyst应用程序添加认证。该应用程序是另一个系统的端口,因此我必须使用当前的后台来处理某些事情。无DBIx的Catalyst认证

其中之一就是用户数据库。它不是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', 
      } 
     } 
    } 
}); 

所以我在哪里可以打电话给我的Web服务模型?

预先感谢您。

更新: 为了生存我一周我自己的web服务查询。如果结果正确,我将获得的数据传递给硬编码领域。非常,非常非常难看,但我提供了功能。现在我再次认真。

回答

1

看起来你必须创建自己的auth store

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

也期待在Catalyst::Authentication::Store::Minimal

+0

感谢。我的认证数据来自“网络服务”,但它不是我可以通过IP访问的预先存在的“网络服务”。我可以使用SOAP :: Lite查询远程服务器,发送用户名和密码,并从用户处返回数据。我不知道如何或在哪里发送授权内的检索数据。 – MIguelele 2012-01-24 12:06:12