version 1.17.2.1, 2022/01/03 18:35:27
|
version 1.17.2.3, 2023/01/23 18:39:46
|
Line 31 package LONCAPA::ltiutils;
|
Line 31 package LONCAPA::ltiutils;
|
use strict; |
use strict; |
use Net::OAuth; |
use Net::OAuth; |
use Digest::SHA; |
use Digest::SHA; |
|
use Digest::MD5 qw(md5_hex); |
|
use Encode; |
|
use LWP::UserAgent(); |
use Apache::lonnet; |
use Apache::lonnet; |
use Apache::loncommon; |
use Apache::loncommon; |
use LONCAPA qw(:DEFAULT :match); |
use LONCAPA qw(:DEFAULT :match); |
Line 276 sub lti_provider_scope {
|
Line 279 sub lti_provider_scope {
|
sub setup_logout_callback { |
sub setup_logout_callback { |
my ($uname,$udom,$server,$ckey,$secret,$service_url,$idsdir,$protocol,$hostname) = @_; |
my ($uname,$udom,$server,$ckey,$secret,$service_url,$idsdir,$protocol,$hostname) = @_; |
if ($service_url =~ m{^https?://[^/]+/}) { |
if ($service_url =~ m{^https?://[^/]+/}) { |
my $digest_user = &Encode::decode_utf8($uname.':'.$udom); |
my $digest_user = &Encode::decode('UTF-8',$uname.':'.$udom); |
my $loginfile = &Digest::SHA::sha1_hex($digest_user).&md5_hex(&md5_hex(time.{}.rand().$$)); |
my $loginfile = &Digest::SHA::sha1_hex($digest_user).&md5_hex(&md5_hex(time.{}.rand().$$)); |
if ((-d $idsdir) && (open(my $fh,'>',"$idsdir/$loginfile"))) { |
if ((-d $idsdir) && (open(my $fh,'>',"$idsdir/$loginfile"))) { |
print $fh "$uname,$udom,$server\n"; |
print $fh "$uname,$udom,$server\n"; |
Line 287 sub setup_logout_callback {
|
Line 290 sub setup_logout_callback {
|
); |
); |
my $post = &sign_params($service_url,$ckey,$secret,\%ltiparams, |
my $post = &sign_params($service_url,$ckey,$secret,\%ltiparams, |
'','','',1); |
'','','',1); |
|
|
|
my $ua=new LWP::UserAgent; |
|
$ua->timeout(10); |
my $request=new HTTP::Request('POST',$service_url); |
my $request=new HTTP::Request('POST',$service_url); |
$request->content($post); |
$request->content($post); |
my $response = &LONCAPA::LWPReq::makerequest('',$request,'','',10); |
my $response=$ua->request($request); |
} |
} |
} |
} |
return; |
return; |