Доступ к sharepoint с использованием perl и webdav - PullRequest
3 голосов
/ 25 ноября 2010

аналогичный вопрос был задан в вопросе 494120 , но на ИМХО ответа не было ...

Я хочу загрузить файлы на sharepoint с помощью perl / WebDAV (с хоста Win32). Для этого мне нужно пройти аутентификацию с помощью KERBEROS на сервере. После поисков в течение нескольких часов и пробуя разные подходы, я не могу открыть соединение. Текущий код такой:

my $agent = HTTP::DAV::UserAgent->new(keep_alive=>1);  
$agent->agent('Agent');  
$agent->timeout(1000);  
my $d = HTTP::DAV->new(-useragent => $agent);  
$d->credentials( -user=>$user,-pass =>$pass, -url =>$url);  
$d->open( -url=>$url ) or die("Couldn't open $url: " .$d->message . "\n");  

При выполнении $ d-> open (...) я всегда получаю сообщение «Не удалось открыть $ url: неавторизовано. Переговоры». Итак, очевидно, что базовая аутентификация не работает.

Может ли кто-нибудь указать мне правильный путь, пожалуйста? Я не привязан к использованию WebDAV, любой другой механизм подойдет мне. Просто хочу, чтобы это заработало ...


Редактировать 1
При использовании LWP вместе с Authen::NTLM (как предлагает Madhur ) также не работает. Это приводит к 500 internal server error на IIS, а также на Apache. Поскольку одна и та же ошибка возникает на двух разных веб-серверах (с двумя разными реализациями NTLM), я предполагаю, что в модуле Authen::NTLM должна быть проблема.

Глядя на реализацию из Authen::NTLM, мне кажется, что код является своего рода обратным инжинирингом и не реализован на основе спецификации и не является действительно конфигурируемым. Что поднимает вопрос, почему спецификация не использовалась для реализации модуля ...

Является ли использование NTLM вместе с Perl таким экзотическим вариантом использования?


Редактировать 2
По предложению Мадхура я попытался получить доступ к Sharepoint с помощью Curl. Это работает. Но прослушивание сообщений NTLM от Curl и сообщений, отправленных Perl, показывает мне, что формат сообщений несколько отличается.

1 Ответ

0 голосов
/ 10 января 2011

Вместо использования WebDAV.Я бы посоветовал вам использовать готовые веб-службы.

В этом разделе описывается использование веб-служб sharepoint в PERL:

http://www.squish.net/log/2008/10/11/perl-sharepoint/

http://shareperl.blogspot.com/

И это код .NET для загрузки файла с помощью веб-службы: http://www.oriolardevol.com/Article/Details/3

Преобразование его в код PERL осталось на вас столько же лет, сколько я использовал PERL:)

...