version 1.577, 2023/05/22 21:10:56
|
version 1.578, 2023/06/02 01:20:28
|
Line 5316 sub lti_handler {
|
Line 5316 sub lti_handler {
|
# $cmd - Command request keyword (signlti). |
# $cmd - Command request keyword (signlti). |
# $tail - Tail of the command. This is a colon-separated list |
# $tail - Tail of the command. This is a colon-separated list |
# consisting of the domain, coursenum (if for an External |
# consisting of the domain, coursenum (if for an External |
# Tool defined in a course), crstool (true if defined in |
# Tool defined in a course), crsdef (true if defined in |
# a course), escaped launch URL, numeric ID of external tool |
# 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 |
# version number for encryption key (if tool's LTI secret was |
# encrypted before storing), post (true if signed data are |
# encrypted before storing), a frozen hash of LTI launch |
# to be returned from Net::OAuth, as a post_body), |
# parameters, and a frozen hash of LTI information, |
# a frozen hash of LTI launch parameters, and a frozen hash |
# (e.g., method => 'HMAC-SHA1', |
# of LTI config data (i.e., method => signature method). |
# respfmt => 'to_authorization_header'). |
# $client - File descriptor open on the client. |
# $client - File descriptor open on the client. |
# Returns: |
# Returns: |
# 1 - Continue processing. |
# 1 - Continue processing. |
Line 5331 sub lti_handler {
|
Line 5332 sub lti_handler {
|
# The reply will contain the LTI payload, as & separated key=value pairs, |
# 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 |
# 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 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. |
# written to $client. |
# |
# |
sub sign_lti_handler { |
sub sign_lti_handler { |
Line 5339 sub sign_lti_handler {
|
Line 5340 sub sign_lti_handler {
|
|
|
my $userinput = "$cmd:$tail"; |
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 $url = &unescape($escurl); |
my $params = &Apache::lonnet::thaw_unescape($paramsref); |
my $params = &Apache::lonnet::thaw_unescape($paramsref); |
my $info = &Apache::lonnet::thaw_unescape($inforef); |
my $info = &Apache::lonnet::thaw_unescape($inforef); |
my $res = |
my $res = |
&LONCAPA::Lond::sign_params($cdom,$cnum,$crstool,$url,$idx,$keynum, |
&LONCAPA::Lond::sign_lti_payload($cdom,$cnum,$crsdef,$context,$url,$ltinum,$keynum, |
$post,$perlvar{'lonVersion'},$params,$info); |
$perlvar{'lonVersion'},$params,$info); |
my $result; |
my $result; |
if (ref($res) eq 'HASH') { |
if (ref($res) eq 'HASH') { |
foreach my $key (keys(%{$res})) { |
foreach my $key (keys(%{$res})) { |