--- loncom/lonnet/perl/lonnet.pm 2023/05/22 21:10:55 1.1510 +++ loncom/lonnet/perl/lonnet.pm 2023/06/02 01:20:29 1.1511 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.1510 2023/05/22 21:10:55 raeburn Exp $ +# $Id: lonnet.pm,v 1.1511 2023/06/02 01:20:29 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -416,10 +416,10 @@ sub remote_devalidate_cache { } sub sign_lti { - my ($cdom,$cnum,$crstool,$url,$idx,$keynum,$post,$paramsref,$inforef) = @_; + my ($cdom,$cnum,$crsdef,$type,$context,$url,$ltinum,$keynum,$paramsref,$inforef) = @_; my $chome; if (&domain($cdom) ne '') { - if ($crstool) { + if ($crsdef) { $chome = &homeserver($cnum,$cdom); } else { $chome = &domain($cdom,'primary'); @@ -432,11 +432,11 @@ sub sign_lti { if (grep { $_ eq $chome } ¤t_machine_ids()) { # domain information is hosted on this machine $rep = - &LONCAPA::Lond::sign_params($cdom,$cnum,$crstool,$url, - $idx,$keynum,$post, - $perlvar{'lonVersion'}, - $paramsref,$inforef); - if ($rep ne '') { + &LONCAPA::Lond::sign_lti_payload($cdom,$cnum,$crsdef,$type, + $context,$url,$ltinum,$keynum, + $perlvar{'lonVersion'}, + $paramsref,$inforef); + if (ref($rep) eq 'HASH') { return ('ok',$rep); } } else { @@ -448,10 +448,13 @@ sub sign_lti { if (ref($inforef) eq 'HASH') { $info = &freeze_escape($inforef); } - $rep=&reply("encrypt:signlti:$cdom:$cnum:$crstool:$escurl:$idx:$keynum:$post:$params:$info",$chome); + $rep=&reply("encrypt:signlti:$cdom:$cnum:$crsdef:$type:$context:$escurl:$ltinum:$keynum:$params:$info",$chome); } if (($rep eq '') || ($rep =~ /^con_lost|error|no_such_host|unknown_cmd/i)) { return (); + } elsif (($inforef->{'respfmt'} eq 'to_post_body') || + ($inforef->{'respfmt'} eq 'to_authorization_header')) { + return ('ok',$rep); } else { my %returnhash; foreach my $item (split(/\&/,$rep)) { @@ -12550,13 +12553,11 @@ sub get_domain_lti { } else { return %lti; } - if ($context eq 'linkprot') { $cachename = $context; } else { $cachename = $name; } - my ($result,$cached)=&is_cached_new($cachename,$cdom); if (defined($cached)) { if (ref($result) eq 'HASH') { @@ -12572,18 +12573,6 @@ sub get_domain_lti { } else { %lti = %{$domconfig{$name}}; } - if (($context eq 'consumer') && (keys(%lti))) { - my %encdomconfig = &get_dom('encconfig',[$name],$cdom,undef,1); - if (ref($encdomconfig{$name}) eq 'HASH') { - foreach my $id (keys(%lti)) { - if (ref($encdomconfig{$name}{$id}) eq 'HASH') { - foreach my $item ('key','secret') { - $lti{$id}{$item} = $encdomconfig{$name}{$id}{$item}; - } - } - } - } - } } my $cachetime = 24*60*60; &do_cache_new($cachename,$cdom,\%lti,$cachetime);