version 1.203, 2022/08/30 12:25:03
|
version 1.208, 2024/09/18 15:11:31
|
Line 50 sub handler {
|
Line 50 sub handler {
|
$ENV{'REDIRECT_QUERY_STRING'}),
|
$ENV{'REDIRECT_QUERY_STRING'}),
|
['interface','username','domain','firsturl','localpath','localres',
|
['interface','username','domain','firsturl','localpath','localres',
|
'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey',
|
'token','role','symb','iptoken','btoken','ltoken','ttoken','linkkey',
|
'saml','sso','retry']);
|
'saml','sso','retry','display']);
|
|
|
# -- check if they are a migrating user
|
# -- check if they are a migrating user
|
if (defined($env{'form.token'})) {
|
if (defined($env{'form.token'})) {
|
Line 68 sub handler {
|
Line 68 sub handler {
|
$env{'form.ltoken'} = $info{'ltoken'};
|
$env{'form.ltoken'} = $info{'ltoken'};
|
} elsif ($info{'linkprot'}) {
|
} elsif ($info{'linkprot'}) {
|
$env{'form.linkprot'} = $info{'linkprot'};
|
$env{'form.linkprot'} = $info{'linkprot'};
|
foreach my $item ('linkprotuser','linkprotexit') {
|
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
|
if ($info{$item} ne '') {
|
if ($info{$item} ne '') {
|
$env{'form.'.$item} = $info{$item};
|
$env{'form.'.$item} = $info{$item};
|
}
|
}
|
Line 175 sub handler {
|
Line 175 sub handler {
|
if ($env{'form.symb'}) {
|
if ($env{'form.symb'}) {
|
$info{'symb'} = $env{'form.symb'};
|
$info{'symb'} = $env{'form.symb'};
|
}
|
}
|
|
if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'} ne '')) {
|
|
if ($env{'form.sso'}) {
|
|
if ($env{'form.mailrecip'}) {
|
|
$info{'display'} = &escape($env{'form.display'});
|
|
$info{'mailrecip'} = &escape($env{'form.mailrecip'});
|
|
}
|
|
} else {
|
|
if (($env{'form.username'}) && ($env{'form.domain'})) {
|
|
$info{'display'} = &escape($env{'form.display'});
|
|
$info{'mailrecip'} = &escape($env{'form.username'}.':'.$env{'form.domain'});
|
|
}
|
|
}
|
|
}
|
my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server);
|
my $balancer_token = &Apache::lonnet::tmpput(\%info,$found_server);
|
unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') ||
|
unless (($balancer_token eq 'con_lost') || ($balancer_token eq 'refused') ||
|
($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) {
|
($balancer_token eq 'unknown_cmd') || ($balancer_token eq 'no_such_host')) {
|
Line 186 sub handler {
|
Line 199 sub handler {
|
$link_info{'ltoken'} = $env{'form.ltoken'};
|
$link_info{'ltoken'} = $env{'form.ltoken'};
|
} elsif ($env{'form.linkprot'}) {
|
} elsif ($env{'form.linkprot'}) {
|
$link_info{'linkprot'} = $env{'form.linkprot'};
|
$link_info{'linkprot'} = $env{'form.linkprot'};
|
foreach my $item ('linkprotuser','linkprotexit') {
|
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
|
if ($env{'form.'.$item} ne '') {
|
if ($env{'form.'.$item} ne '') {
|
$link_info{$item} = $env{'form.'.$item};
|
$link_info{$item} = $env{'form.'.$item};
|
}
|
}
|
Line 228 sub handler {
|
Line 241 sub handler {
|
$balcookie = $info{'balcookie'};
|
$balcookie = $info{'balcookie'};
|
&Apache::lonnet::tmpdel($env{'form.btoken'});
|
&Apache::lonnet::tmpdel($env{'form.btoken'});
|
delete($env{'form.btoken'});
|
delete($env{'form.btoken'});
|
|
if (($env{'form.firsturl'} eq '/adm/email') &&
|
|
(exists($info{'display'})) && (exists($info{'mailrecip'}))) {
|
|
$env{'form.display'} = &unescape($info{'display'});
|
|
$env{'form.mailrecip'} = &unescape($info{'mailrecip'});
|
|
}
|
}
|
}
|
|
|
#
|
#
|
Line 259 sub handler {
|
Line 277 sub handler {
|
$dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&');
|
$dest = &HTML::Entities::encode($env{'form.firsturl'},'\'"<>&');
|
}
|
}
|
if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) {
|
if (($env{'form.ltoken'}) || ($env{'form.linkprot'})) {
|
my ($linkprot,$linkprotuser,$linkprotexit);
|
my ($linkprot,$linkprotuser,$linkprotexit,$linkprotpbid,$linkprotpburl);
|
if ($env{'form.ltoken'}) {
|
if ($env{'form.ltoken'}) {
|
my %info = &Apache::lonnet::tmpget($env{'form.ltoken'});
|
my %info = &Apache::lonnet::tmpget($env{'form.ltoken'});
|
$linkprot = $info{'linkprot'};
|
$linkprot = $info{'linkprot'};
|
Line 269 sub handler {
|
Line 287 sub handler {
|
if ($info{'linkprotexit'} ne '') {
|
if ($info{'linkprotexit'} ne '') {
|
$linkprotexit = $info{'linkprotexit'};
|
$linkprotexit = $info{'linkprotexit'};
|
}
|
}
|
|
if ($info{'linkprotpbid'} ne '') {
|
|
$linkprotpbid = $info{'linkprotpbid'};
|
|
}
|
|
if ($info{'linkprotpburl'} ne '') {
|
|
$linkprotpburl = $info{'linkprotpburl'};
|
|
}
|
} else {
|
} else {
|
$linkprot = $env{'form.linkprot'};
|
$linkprot = $env{'form.linkprot'};
|
$linkprotuser = $env{'form.linkprotuser'};
|
$linkprotuser = $env{'form.linkprotuser'};
|
$linkprotexit = $env{'form.linkprotexit'};
|
$linkprotexit = $env{'form.linkprotexit'};
|
|
$linkprotpbid = $env{'form.linkprotpbid'};
|
|
$linkprotpburl = $env{'form.linkprotpburl'};
|
}
|
}
|
if ($linkprot) {
|
if ($linkprot) {
|
my ($linkprotector,$deeplink) = split(/:/,$linkprot,2);
|
my ($linkprotector,$deeplink) = split(/:/,$linkprot,2);
|
Line 284 sub handler {
|
Line 310 sub handler {
|
linkprot => $linkprot,
|
linkprot => $linkprot,
|
linkprotuser => $linkprotuser,
|
linkprotuser => $linkprotuser,
|
linkprotexit => $linkprotexit,
|
linkprotexit => $linkprotexit,
|
);
|
linkprotpbid => $linkprotpbid,
|
|
linkprotpburl => $linkprotpburl,
|
|
);
|
if ($env{'form.ltoken'}) {
|
if ($env{'form.ltoken'}) {
|
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
|
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
|
}
|
}
|
Line 339 sub handler {
|
Line 367 sub handler {
|
if ($env{'form.ltoken'}) {
|
if ($env{'form.ltoken'}) {
|
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
|
my $delete = &Apache::lonnet::tmpdel($env{'form.ltoken'});
|
}
|
}
|
|
if (($env{'form.firsturl'} eq '/adm/email') && ($env{'form.display'})) {
|
|
if ($env{'form.mailrecip'}) {
|
|
if ($env{'form.mailrecip'} eq "$env{'user.name'}:$env{'user.domain'}") {
|
|
$dest .= (($dest=~/\?/)?'&':'?') . 'display='.&escape($env{'form.display'}).
|
|
'&mailrecip='.&escape($env{'form.mailrecip'});
|
|
}
|
|
} elsif (($env{'form.username'} eq $env{'user.name'}) && ($env{'form.domain'} eq $env{'user.domain'})) {
|
|
$dest .= (($dest=~/\?/)?'&':'?') . 'display='.&escape($env{'form.display'}).
|
|
'&mailrecip='.&escape("$env{'user.name'}:$env{'form.domain'}");
|
|
}
|
|
}
|
$r->print(
|
$r->print(
|
$start_page
|
$start_page
|
.'<p class="LC_warning">'.&mt('You are already logged in!').'</p>'
|
.'<p class="LC_warning">'.&mt('You are already logged in!').'</p>'
|
Line 464 sub handler {
|
Line 503 sub handler {
|
|
|
# -------------------------------------------------------- Store away log token
|
# -------------------------------------------------------- Store away log token
|
my ($tokenextras,$tokentype,$linkprot_for_login);
|
my ($tokenextras,$tokentype,$linkprot_for_login);
|
my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit','linkprot','linkkey');
|
my @names = ('role','symb','iptoken','ltoken','linkprotuser','linkprotexit',
|
|
'linkprot','linkkey','display','linkprotpbid','linkprotpburl');
|
foreach my $name (@names) {
|
foreach my $name (@names) {
|
if ($env{'form.'.$name} ne '') {
|
if ($env{'form.'.$name} ne '') {
|
if ($name eq 'ltoken') {
|
if ($name eq 'ltoken') {
|
Line 472 sub handler {
|
Line 512 sub handler {
|
if ($info{'linkprot'}) {
|
if ($info{'linkprot'}) {
|
$linkprot_for_login = $info{'linkprot'};
|
$linkprot_for_login = $info{'linkprot'};
|
$tokenextras .= '&linkprot='.&escape($info{'linkprot'});
|
$tokenextras .= '&linkprot='.&escape($info{'linkprot'});
|
foreach my $item ('linkprotuser','linkprotexit') {
|
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
|
if ($info{$item}) {
|
if ($info{$item}) {
|
$tokenextras .= '&'.$item.'='.&escape($info{$item});
|
$tokenextras .= '&'.$item.'='.&escape($info{$item});
|
}
|
}
|
Line 480 sub handler {
|
Line 520 sub handler {
|
$tokentype = 'link';
|
$tokentype = 'link';
|
last;
|
last;
|
}
|
}
|
|
} elsif ($env{'form.display'} && ($env{'form.firsturl'} eq '/adm/email')) {
|
|
if (($env{'form.mailrecip'}) ||
|
|
($env{'form.username'} =~ /^$match_username$/) && ($env{'form.domain'} =~ /^$match_domain$/)) {
|
|
$tokenextras .= '&'.$name.'='.&escape($env{'form.display'});
|
|
if ($env{'form.mailrecip'}) {
|
|
$tokenextras .= '&mailrecip='.&escape($env{'form.mailrecip'});
|
|
} else {
|
|
$tokenextras .= '&mailrecip='.&escape($env{'form.username'}.':'.$env{'form.domain'});
|
|
}
|
|
}
|
} else {
|
} else {
|
$tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name});
|
$tokenextras .= '&'.$name.'='.&escape($env{'form.'.$name});
|
if (($name eq 'linkkey') || ($name eq 'linkprot')) {
|
if (($name eq 'linkkey') || ($name eq 'linkprot')) {
|
Line 807 ENDSAMLJS
|
Line 857 ENDSAMLJS
|
.' style="margin:0 auto; padding:10px; width:90%; height: auto; background-color:#FFFFFF;">'
|
.' style="margin:0 auto; padding:10px; width:90%; height: auto; background-color:#FFFFFF;">'
|
);
|
);
|
|
|
|
my $target = '_top';
|
|
if ($sessiondata{'linkprot'}) {
|
|
my ($linkprotector,$deeplink) = split(/:/,$sessiondata{'linkprot'},2);
|
|
if (($deeplink eq $sessiondata{'origurl'}) &&
|
|
(($sessiondata{'linkprotuser'} eq $sessiondata{'username'}.':'.$sessiondata{'domain'}) ||
|
|
($sessiondata{'linkprotuser'} eq $sessiondata{'username'}))) {
|
|
$target = '_self';
|
|
}
|
|
}
|
$r->print(<<ENDSERVERFORM);
|
$r->print(<<ENDSERVERFORM);
|
<form name="server" action="/adm/authenticate" method="post" target="_top">
|
<form name="server" action="/adm/authenticate" method="post" target="$target">
|
<input type="hidden" name="logtoken" value="$logtoken" />
|
<input type="hidden" name="logtoken" value="$logtoken" />
|
<input type="hidden" name="serverid" value="$lonhost" />
|
<input type="hidden" name="serverid" value="$lonhost" />
|
<input type="hidden" name="uname" value="" />
|
<input type="hidden" name="uname" value="" />
|
Line 1221 sub redirect_page {
|
Line 1280 sub redirect_page {
|
$args->{'only_body'} = 1;
|
$args->{'only_body'} = 1;
|
} elsif ($env{'form.linkprot'}) {
|
} elsif ($env{'form.linkprot'}) {
|
$link_info{'linkprot'} = $env{'form.linkprot'};
|
$link_info{'linkprot'} = $env{'form.linkprot'};
|
foreach my $item ('linkprotuser','linkprotexit') {
|
foreach my $item ('linkprotuser','linkprotexit','linkprotpbid','linkprotpburl') {
|
if ($env{'form.'.$item}) {
|
if ($env{'form.'.$item}) {
|
$link_info{$item} = $env{'form.'.$item};
|
$link_info{$item} = $env{'form.'.$item};
|
}
|
}
|
Line 1261 sub redirect_page {
|
Line 1320 sub redirect_page {
|
}
|
}
|
$url .= $querystring;
|
$url .= $querystring;
|
}
|
}
|
$args->{'redirect'} = [0,$url];
|
$args->{'redirect'} = [0,$url,'','',1];
|
my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args);
|
my $start_page = &Apache::loncommon::start_page('Switching Server ...',undef,$args);
|
my $end_page = &Apache::loncommon::end_page();
|
my $end_page = &Apache::loncommon::end_page();
|
return $start_page.$end_page;
|
return $start_page.$end_page;
|