version 1.203, 2022/06/18 02:10:18
|
version 1.205, 2022/06/30 21:04:13
|
Line 333 sub sso_login {
|
Line 333 sub sso_login {
|
} |
} |
} |
} |
|
|
my ($linkprot,$linkprotuser,$linkkey,$deeplinkurl); |
my ($linkprot,$linkprotuser,$linkprotexit,$linkkey,$deeplinkurl); |
|
|
# |
# |
# If Shibboleth auth is in use, and a dual SSO and non-SSO login page |
# If Shibboleth auth is in use, and a dual SSO and non-SSO login page |
Line 372 sub sso_login {
|
Line 372 sub sso_login {
|
if ($info{'linkprot'}) { |
if ($info{'linkprot'}) { |
$linkprot = $info{'linkprot'}; |
$linkprot = $info{'linkprot'}; |
$linkprotuser = $info{'linkprotuser'}; |
$linkprotuser = $info{'linkprotuser'}; |
|
$linkprotexit = $info{'linkprotexit'}; |
} elsif ($info{'linkkey'} ne '') { |
} elsif ($info{'linkkey'} ne '') { |
$linkkey = $info{'linkkey'}; |
$linkkey = $info{'linkkey'}; |
} |
} |
Line 397 sub sso_login {
|
Line 398 sub sso_login {
|
if ($form{'linkprot'}) { |
if ($form{'linkprot'}) { |
$linkprot = $form{'linkprot'}; |
$linkprot = $form{'linkprot'}; |
$linkprotuser = $form{'linkprotuser'}; |
$linkprotuser = $form{'linkprotuser'}; |
|
$linkprotexit = $form{'linkprotexit'}; |
} elsif ($form{'linkkey'} ne '') { |
} elsif ($form{'linkkey'} ne '') { |
$linkkey = $form{'linkkey'}; |
$linkkey = $form{'linkkey'}; |
} |
} |
Line 425 sub sso_login {
|
Line 427 sub sso_login {
|
if ($form{'linkprot'}) { |
if ($form{'linkprot'}) { |
$linkprot = $form{'linkprot'}; |
$linkprot = $form{'linkprot'}; |
$linkprotuser = $form{'linkprotuser'}; |
$linkprotuser = $form{'linkprotuser'}; |
|
$linkprotexit = $form{'linkprotexit'}; |
} elsif ($form{'linkkey'} ne '') { |
} elsif ($form{'linkkey'} ne '') { |
$linkkey = $form{'linkkey'}; |
$linkkey = $form{'linkkey'}; |
} |
} |
Line 432 sub sso_login {
|
Line 435 sub sso_login {
|
} elsif ($form{'ltoken'}) { |
} elsif ($form{'ltoken'}) { |
my %link_info = &Apache::lonnet::tmpget($form{'ltoken'}); |
my %link_info = &Apache::lonnet::tmpget($form{'ltoken'}); |
$linkprot = $link_info{'linkprot'}; |
$linkprot = $link_info{'linkprot'}; |
if (($linkprot) && ($link_info{'linkprotuser'} ne '')) { |
if ($linkprot) { |
$linkprotuser = $link_info{'linkprotuser'}; |
if ($link_info{'linkprotuser'} ne '') { |
|
$linkprotuser = $link_info{'linkprotuser'}; |
|
} |
|
if ($link_info{'linkprotexit'} ne '') { |
|
$linkprotexit = $link_info{'linkprotexit'}; |
|
} |
} |
} |
my $delete = &Apache::lonnet::tmpdel($form{'ltoken'}); |
my $delete = &Apache::lonnet::tmpdel($form{'ltoken'}); |
delete($form{'ltoken'}); |
delete($form{'ltoken'}); |
Line 455 sub sso_login {
|
Line 463 sub sso_login {
|
origurl => $deeplinkurl, |
origurl => $deeplinkurl, |
linkprot => $linkprot, |
linkprot => $linkprot, |
linkprotuser => $linkprotuser, |
linkprotuser => $linkprotuser, |
|
linkprotexit => $linkprotexit, |
); |
); |
my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link'); |
my $token = &Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'link'); |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |
Line 521 sub sso_login {
|
Line 530 sub sso_login {
|
if ($linkprotuser ne '') { |
if ($linkprotuser ne '') { |
$env{'request.linkprotuser'} = $linkprotuser; |
$env{'request.linkprotuser'} = $linkprotuser; |
} |
} |
|
if ($linkprotexit ne '') { |
|
$env{'request.linkprotexit'} = $linkprotexit; |
|
} |
} elsif ($linkkey ne '') { |
} elsif ($linkkey ne '') { |
$env{'request.linkkey'} = $linkkey; |
$env{'request.linkkey'} = $linkkey; |
} |
} |
Line 566 sub sso_login {
|
Line 578 sub sso_login {
|
if ($info{'deeplink.login'}) { |
if ($info{'deeplink.login'}) { |
if ($linkprot) { |
if ($linkprot) { |
$info{'linkprot'} = $linkprot; |
$info{'linkprot'} = $linkprot; |
|
if ($linkprotuser ne '') { |
|
$info{'linkprotuser'} = $linkprotuser; |
|
} |
|
if ($linkprotexit ne '') { |
|
$info{'linkprotexit'} = $linkprotexit; |
|
} |
} elsif ($linkkey ne '') { |
} elsif ($linkkey ne '') { |
$info{'linkkey'} = $linkkey; |
$info{'linkkey'} = $linkkey; |
} |
} |
Line 777 sub handler {
|
Line 795 sub handler {
|
&Apache::loncommon::get_unprocessed_cgi($r->args,['ttoken']); |
&Apache::loncommon::get_unprocessed_cgi($r->args,['ttoken']); |
if (defined($env{'form.ttoken'})) { |
if (defined($env{'form.ttoken'})) { |
my %info = &Apache::lonnet::tmpget($env{'form.ttoken'}); |
my %info = &Apache::lonnet::tmpget($env{'form.ttoken'}); |
if (($info{'linkprotuser'} ne '') && ($info{'origurl'} ne '')) { |
if (($info{'origurl'} ne '') && ($info{'origurl'} eq $requrl)) { |
if (($info{'linkprot'}) && ($info{'origurl'} eq $requrl) && |
my %data; |
|
if (($info{'linkprotuser'} ne '') && ($info{'linkprot'}) && |
($info{'linkprotuser'} ne $env{'user.name'}.':'.$env{'user.domain'})) { |
($info{'linkprotuser'} ne $env{'user.name'}.':'.$env{'user.domain'})) { |
my %data = ( |
%data = ( |
origurl => $requrl, |
origurl => $requrl, |
linkprot => $info{'linkprot'}, |
linkprot => $info{'linkprot'}, |
linkprotuser => $info{'linkprotuser'}, |
linkprotuser => $info{'linkprotuser'}, |
|
linkprotexit => $info{'linkprotexit'}, |
); |
); |
|
} elsif ($info{'ltoken'} ne '') { |
|
my %ltoken_info = &Apache::lonnet::tmpget($info{'ltoken'}); |
|
if (($ltoken_info{'linkprotuser'} ne '') && ($ltoken_info{'linkprot'}) && |
|
($ltoken_info{'linkprotuser'} ne $env{'user.name'}.':'.$env{'user.domain'})) { |
|
%data = ( |
|
origurl => $requrl, |
|
linkprot => $ltoken_info{'linkprot'}, |
|
linkprotuser => $ltoken_info{'linkprotuser'}, |
|
linkprotexit => $ltoken_info{'linkprotexit'}, |
|
); |
|
} |
|
} |
|
if (keys(%data)) { |
|
my $delete = &Apache::lonnet::tmpdel($env{'form.ttoken'}); |
|
if ($info{'ltoken'} ne '') { |
|
my $delete = &Apache::lonnet::tmpdel($info{'ltoken'}); |
|
} |
my $token = |
my $token = |
&Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'retry'); |
&Apache::lonnet::tmpput(\%data,$r->dir_config('lonHostID'),'retry'); |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |
unless (($token eq 'con_lost') || ($token eq 'refused') || ($token =~ /^error:/) || |