--- loncom/lond 2023/06/02 01:20:28 1.578 +++ loncom/lond 2023/06/07 14:21:52 1.579 @@ -2,7 +2,7 @@ # The LearningOnline Network # lond "LON Daemon" Server (port "LOND" 5663) # -# $Id: lond,v 1.578 2023/06/02 01:20:28 raeburn Exp $ +# $Id: lond,v 1.579 2023/06/07 14:21:52 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.578 $'; #' stupid emacs +my $VERSION='$Revision: 1.579 $'; #' stupid emacs my $remoteVERSION; my $currenthostid="default"; my $currentdomainid; @@ -5265,9 +5265,9 @@ sub encrypted_get_domain_handler { # 0 - Exit. # Side effects: # The reply will contain an LTI itemID, if the signed LTI payload -# could be verified using the consumer key and the shared secret -# available for that key (for the itemID) for either the course or domain, -# depending on values for cnum and context. The reply is encrypted before +# could be verified using the consumer key and the shared secret +# available for that key (for the itemID) for either the course or domain, +# depending on values for cnum and context. The reply is encrypted before # being written to $client. # sub lti_handler { @@ -5308,16 +5308,19 @@ sub lti_handler { ®ister_handler("lti", \<i_handler, 1, 1, 0); # -# LTI data for launch payload (received encrypted) are unencrypted and +# Data for LTI payload (received encrypted) are unencrypted and # then signed with the appropriate key and secret, before re-encrypting -# for sending as the signed payload to the client (caller lonnet::sign_lti()). +# the signed payload which is sent to the client for unencryption by +# the caller: lonnet::sign_lti()) before dispatch either to a web browser +# (launch) or to a remote web service (roster, logout, or grade). # # Parameters: # $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), crsdef (true if defined in -# a course), context (launch, roster, logout, or grade), +# a course), type (linkprot or lti) +# 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), a frozen hash of LTI launch @@ -5331,7 +5334,7 @@ sub lti_handler { # Side effects: # 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 +# for the specific tool ID are available. The payload data are retrieved from # a call to Lond::sign_lti_payload(), and the reply is encrypted before being # written to $client. # @@ -5340,13 +5343,14 @@ sub sign_lti_handler { my $userinput = "$cmd:$tail"; - my ($cdom,$cnum,$crsdef,$context,$escurl,$ltinum,$keynum,$paramsref,$inforef) = split(/:/,$tail); + my ($cdom,$cnum,$crsdef,$type,$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_lti_payload($cdom,$cnum,$crsdef,$context,$url,$ltinum,$keynum, - $perlvar{'lonVersion'},$params,$info); + &LONCAPA::Lond::sign_lti_payload($cdom,$cnum,$crsdef,$type,$context,$url,$ltinum, + $keynum,$perlvar{'lonVersion'},$params,$info); my $result; if (ref($res) eq 'HASH') { foreach my $key (keys(%{$res})) {