SharePoint-SOAPHandler version 0.0011
================================
This module provides CopyTree::VendorProof a connector instance with methods to deal with remote Sharepoint file operations.
IMPORTANT NOTICE: Your Implementation might not work unless you read the following!
Currenly, you need to install Authen::NTLM version 1.09 or greater for this module to work. With my v1.09 tweak to Authen::NTLM on CPAN, this module should just work. If you actually use Authen::NTLM directly for some reason, remember to set
ntlmv2('sp');
prior to using SharePoint::SOAPHandler. You did remember to export ntlmv2, no?
use Authen::NTLM qw(ntlmv2);
For those of you with earlier versions of Authen::NTLM, see the historic segment below.
Also, if your Sharepoint connects through https, but does not go through a proxy server, even though all your OTHER http/ https traffic does, you must:
delete $ENV{'https_proxy'}
Specifying the domain on no_proxy will not do the trick, because oddly, no_proxy only works for 'no http' and not 'no https'. These are just some annoying things I discovered. Your milage may vary.
The methods provided in this connector objects include:
new
fdls
is_fd
read_info_memory
write_from_memory
copy_local_files
cust_mkdir
cust_rmdir
cust_rmfile
The functionality of these methods are described in
perldoc CopyTree::VendorProof and
perldoc SharePoint::SOAPHandler
To create a SharePoint::SOAPHandler connector instance:
my $soaphandler_inst = SharePoint::SOAPHandler ->new;
#set up connection parameters
#IMPORTANT sp_creds_domain should not have the protocol (http or https://)
$soaphandler_inst ->sp_creds_domain('www.sharepointsite.org:443');
$soaphandler_inst ->sp_creds_user('DOMAIN_in_CAPs\username');
$soaphandler_inst ->sp_creds_password('domain_password');
$soaphandler_inst ->sp_authorizedroot('https://www.sharepointsite.org:443/some_dirs/the_dir_just_above_the_Shared_Documents_dir_that_you_are_allowed_to_edit');
To add a source or destination item to a CopyTree::VendorProof instance:
my $ctvp_inst = CopyTree::VendorProof ->new;
$ctvp_inst ->src ('some_source_path_of_local_file_system', $soaphandler_inst);
$ctvp_inst ->dst ('some_destination_path_of_local_file_system', $soaphandler_inst);
$ctvp_inst ->cp;
SharePoint::SOAPHandler, in adition to providing a connector instance to CopyTree::VendorProof, also provides some getlist funcions for sharepoint. These functions are not extensively tested and are not recommended for use.
----historic----
Please note that as of July 2011, there is an NTLM bug that needs to be hacked for the sharepoint connector SharePoint::SPCOPY to work. Basically, LWP automatically negotiates NTLM protocols, and calls its LWP::Authen::Ntlm to in turn call Authen::NTLM to authenticate against windows domains. The problem is, sharepoint prefers an authentication between ntlmv2 and ntlmv1 that's offered by the Authen::NTLM package. LWP::Authen::Ntlm does not specify any version. This causes authentication to fail on sharepoint. The web community offers a quick fix to 'patch' Authen::NTLM, which involves finding the Authen::NTLM module (perhaps in /usr/local/share/perl/5.10.1/Authen/NTLM.pm) and changing around line 289, where
$domain =substr($challenge, $c_info->{domain}{offset}, $c_info->{domain}{len});
is to be changed to
$domain = &unicode("domain");
This is CRITICALLY IMPORTANT if you want SharePoint::SOAPHandler to work. I have created a patch that is a varient of this solution, but does not break backwards compatibility. You can find this patch at
https://rt.cpan.org/Ticket/Display.html?id=70703
Remember, either of these fixes must be applied for this module to work. If the above instructions are unclear, please google http://shareperl.blogspot.com/2010/01/sharepoint-perl-connection.html.
----end historic----
INSTALLATION
To install this module type the following:
perl Makefile.PL
make
make test
make install
DEPENDENCIES
This module requires these other modules and libraries:
CopyTree::VendorProof => 0.0011,
Authen::NTLM =>1.09
SOAP::Lite =>0.712
MIME::Base64=>3.01,
File::Basename=> 2.72,
Data::Dumper=> 2.121,
Carp=>1.02
COPYRIGHT AND LICENCE
Put the correct copyright and licence information here.
Copyright (C) 2011 by dbmolester
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.10.1 or,
at your option, any later version of Perl 5 you may have available.