--- loncom/lond 2023/05/22 21:10:56 1.577 +++ loncom/lond 2023/06/02 01:20:28 1.578 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.577 2023/05/22 21:10:56 raeburn Exp $ +# $Id: lond,v 1.578 2023/06/02 01:20:28 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -65,7 +65,7 @@ my $DEBUG = 0; # Non zero to ena my $status=''; my $lastlog=''; -my $VERSION='$Revision: 1.577 $'; #' stupid emacs +my $VERSION='$Revision: 1.578 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -5316,13 +5316,14 @@ sub lti_handler { # $cmd - Command request keyword (signlti). # $tail - Tail of the command. This is a colon-separated list # consisting of the domain, coursenum (if for an External -# Tool defined in a course), crstool (true if defined in -# a course), escaped launch URL, numeric ID of external tool +# Tool defined in a course), crsdef (true if defined in +# a course), context (launch, roster, logout, or grade), +# escaped launch URL, numeric ID of external tool, # version number for encryption key (if tool's LTI secret was -# encrypted before storing), post (true if signed data are -# to be returned from Net::OAuth, as a post_body), -# a frozen hash of LTI launch parameters, and a frozen hash -# of LTI config data (i.e., method => signature method). +# encrypted before storing), a frozen hash of LTI launch +# parameters, and a frozen hash of LTI information, +# (e.g., method => 'HMAC-SHA1', +# respfmt => 'to_authorization_header'). # $client - File descriptor open on the client. # Returns: # 1 - Continue processing. @@ -5331,7 +5332,7 @@ sub lti_handler { # The reply will contain the LTI payload, as & separated key=value pairs, # where value is itself a frozen hash, if the required key and secret # for the apecific tool ID are available. The payload data are retrived from -# a call to Lond::sign_params(), and the reply is encrypted before being +# a call to Lond::sign_lti_payload(), and the reply is encrypted before being # written to $client. # sub sign_lti_handler { @@ -5339,13 +5340,13 @@ sub sign_lti_handler { my $userinput = "$cmd:$tail"; - my ($cdom,$cnum,$crstool,$escurl,$idx,$keynum,$post,$paramsref,$inforef) = split(/:/,$tail); + my ($cdom,$cnum,$crsdef,$context,$escurl,$ltinum,$keynum,$paramsref,$inforef) = split(/:/,$tail); my $url = &unescape($escurl); my $params = &Apache::lonnet::thaw_unescape($paramsref); my $info = &Apache::lonnet::thaw_unescape($inforef); my $res = - &LONCAPA::Lond::sign_params($cdom,$cnum,$crstool,$url,$idx,$keynum, - $post,$perlvar{'lonVersion'},$params,$info); + &LONCAPA::Lond::sign_lti_payload($cdom,$cnum,$crsdef,$context,$url,$ltinum,$keynum, + $perlvar{'lonVersion'},$params,$info); my $result; if (ref($res) eq 'HASH') { foreach my $key (keys(%{$res})) {