Скрипт check_pass_win32.pl для авторизации на основе Active Directory

Здравствуйте, господа. Маленький вопросик.

Поставил на Win2003 EJabberD 0.9.8 по инструкции с сайта http://ejabberd.narod.ru . Авторизация получилась только на основе Active Directory, но в этом случае не проверяется пароль пользователя, а это очень плохо. Пытаюсь сделать аутентификацию на основе перлового скрипта.

В конфиге:
{auth_method, external}.
{extauth_program, "c:\perl\bin\perl.exe C:\bin\Ejabberd\scripts\check_pass_win32.pl"}.

Первые строчки скрипта:
my $domain = "mydomain.ru";
my $server = "mydomain.ru";
$AccessGroup = "Domain Users";

При попытке подключения клиента к серверу дропает его и пишет вот что:
=INFO REPORT==== 26-Jan-2006::20:38:43 ===
I(<0.242.0>:ejabberd_listener:90): (#Port<0.611>) Accepted connection {{10,1,4,
8},1061} -> {{10,1,2,129},5223}

=ERROR REPORT==== 26-Jan-2006::20:38:43 ===
** State machine <0.485.0> terminating
** Last event in was {xmlstreamelement,
{xmlelement,"iq",
[{"type","set"},{"id","JAJSAuth"}],
[{xmlelement,
"query",
[{"xmlns","jabber:iq:auth"}],
[{xmlelement,
"username",
[],
[{xmlcdata,"Sj"}]},
{xmlelement,
"digest",
[],
[{xmlcdata,
"901b56eb94d8b6f392999e82c0
a5215b31156e5"}]},
{xmlelement,
"resource",
[],
[{xmlcdata,"jajc"}]}]}]}}
** When State == wait_for_auth
** Data == {state,{tlssock,#Port<0.611>,#Port<0.612>},
<0.486.0>,
tls,
"2797415038",
undefined,
c2s,
c2s_shaper,
true,
false,
true,
[{certfile,"./ejabberd.pem"}],
false,
undefined,
[],
"realan.ru",
[],
{0,nil},
{0,nil},
{0,nil},
{0,nil},
undefined,
undefined,
undefined,
false,
none,
[]}
** Reason for termination =
** {badarg,[{extauth,call_port,2},
{ejabberd_c2s,wait_for_auth,2},
{gen_fsm,handle_msg,7},
{proc_lib,init_p,5}]}

Что это за проблема? Как её лечить? Вроде делал всё по инструкции.
Спасибо.

Syndicate content