Lines 153-158
sub get_template_and_user {
Link Here
|
153 |
|
153 |
|
154 |
my $in = shift; |
154 |
my $in = shift; |
155 |
my ( $user, $cookie, $sessionID, $flags ); |
155 |
my ( $user, $cookie, $sessionID, $flags ); |
|
|
156 |
$cookie = []; |
156 |
|
157 |
|
157 |
# Get shibboleth login attribute |
158 |
# Get shibboleth login attribute |
158 |
my $shib = C4::Context->config('useshibboleth') && shib_ok(); |
159 |
my $shib = C4::Context->config('useshibboleth') && shib_ok(); |
Lines 242-248
sub get_template_and_user {
Link Here
|
242 |
if ($kick_out) { |
243 |
if ($kick_out) { |
243 |
$template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac', |
244 |
$template = C4::Templates::gettemplate( 'opac-auth.tt', 'opac', |
244 |
$in->{query} ); |
245 |
$in->{query} ); |
245 |
$cookie = $in->{query}->cookie( |
246 |
push @$cookie, $in->{query}->cookie( |
246 |
-name => 'CGISESSID', |
247 |
-name => 'CGISESSID', |
247 |
-value => '', |
248 |
-value => '', |
248 |
-expires => '', |
249 |
-expires => '', |
Lines 654-664
sub get_template_and_user {
Link Here
|
654 |
# what to do |
655 |
# what to do |
655 |
my $language = C4::Languages::getlanguage( $in->{'query'} ); |
656 |
my $language = C4::Languages::getlanguage( $in->{'query'} ); |
656 |
my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language ); |
657 |
my $languagecookie = C4::Templates::getlanguagecookie( $in->{'query'}, $language ); |
657 |
if ( ref $cookie eq 'ARRAY' ) { |
658 |
push @{$cookie}, $languagecookie; |
658 |
push @{$cookie}, $languagecookie; |
|
|
659 |
} else { |
660 |
$cookie = [ $cookie, $languagecookie ]; |
661 |
} |
662 |
} |
659 |
} |
663 |
|
660 |
|
664 |
return ( $template, $borrowernumber, $cookie, $flags ); |
661 |
return ( $template, $borrowernumber, $cookie, $flags ); |
Lines 808-813
sub _timeout_syspref {
Link Here
|
808 |
return $timeout; |
805 |
return $timeout; |
809 |
} |
806 |
} |
810 |
|
807 |
|
|
|
808 |
sub clear_all_cookies { |
809 |
my ( $query ) = shift; |
810 |
my @cookies; |
811 |
for my $cookie_name ( $query->cookie ) { |
812 |
push @cookies, $query->cookie( -name => $cookie_name, -value => '', -expires => '', -HttpOnly => 1 ); |
813 |
} |
814 |
return \@cookies; |
815 |
} |
816 |
|
811 |
sub checkauth { |
817 |
sub checkauth { |
812 |
my $query = shift; |
818 |
my $query = shift; |
813 |
|
819 |
|
Lines 844-849
sub checkauth {
Link Here
|
844 |
my $loggedin = 0; |
850 |
my $loggedin = 0; |
845 |
my %info; |
851 |
my %info; |
846 |
my ( $userid, $cookie, $sessionID, $flags ); |
852 |
my ( $userid, $cookie, $sessionID, $flags ); |
|
|
853 |
$cookie = []; |
847 |
my $logout = $query->param('logout.x'); |
854 |
my $logout = $query->param('logout.x'); |
848 |
|
855 |
|
849 |
my $anon_search_history; |
856 |
my $anon_search_history; |
Lines 867-873
sub checkauth {
Link Here
|
867 |
if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) { |
874 |
if ( !$shib and defined( $ENV{'REMOTE_USER'} ) and $ENV{'REMOTE_USER'} ne '' and $userid = $ENV{'REMOTE_USER'} ) { |
868 |
|
875 |
|
869 |
# Using Basic Authentication, no cookies required |
876 |
# Using Basic Authentication, no cookies required |
870 |
$cookie = $query->cookie( |
877 |
push @$cookie, $query->cookie( |
871 |
-name => 'CGISESSID', |
878 |
-name => 'CGISESSID', |
872 |
-value => '', |
879 |
-value => '', |
873 |
-expires => '', |
880 |
-expires => '', |
Lines 910-915
sub checkauth {
Link Here
|
910 |
my $shibSuccess = C4::Context->userenv->{'shibboleth'}; |
917 |
my $shibSuccess = C4::Context->userenv->{'shibboleth'}; |
911 |
$session->delete(); |
918 |
$session->delete(); |
912 |
$session->flush; |
919 |
$session->flush; |
|
|
920 |
$cookie = clear_all_cookies($query); |
913 |
C4::Context->_unset_userenv($sessionID); |
921 |
C4::Context->_unset_userenv($sessionID); |
914 |
|
922 |
|
915 |
if ($cas and $caslogout) { |
923 |
if ($cas and $caslogout) { |
Lines 922-928
sub checkauth {
Link Here
|
922 |
} |
930 |
} |
923 |
} else { |
931 |
} else { |
924 |
|
932 |
|
925 |
$cookie = $query->cookie( |
933 |
push @$cookie, $query->cookie( |
926 |
-name => 'CGISESSID', |
934 |
-name => 'CGISESSID', |
927 |
-value => $session->id, |
935 |
-value => $session->id, |
928 |
-HttpOnly => 1, |
936 |
-HttpOnly => 1, |
Lines 968-974
sub checkauth {
Link Here
|
968 |
|
976 |
|
969 |
$sessionID = $session->id; |
977 |
$sessionID = $session->id; |
970 |
C4::Context->_new_userenv($sessionID); |
978 |
C4::Context->_new_userenv($sessionID); |
971 |
$cookie = $query->cookie( |
979 |
push @$cookie, $query->cookie( |
972 |
-name => 'CGISESSID', |
980 |
-name => 'CGISESSID', |
973 |
-value => $sessionID, |
981 |
-value => $sessionID, |
974 |
-HttpOnly => 1, |
982 |
-HttpOnly => 1, |
Lines 1168-1174
sub checkauth {
Link Here
|
1168 |
$domain =~ s|\.\*||g; |
1176 |
$domain =~ s|\.\*||g; |
1169 |
if ( $ip !~ /^$domain/ ) { |
1177 |
if ( $ip !~ /^$domain/ ) { |
1170 |
$loggedin = 0; |
1178 |
$loggedin = 0; |
1171 |
$cookie = $query->cookie( |
1179 |
push @$cookie, $query->cookie( |
1172 |
-name => 'CGISESSID', |
1180 |
-name => 'CGISESSID', |
1173 |
-value => '', |
1181 |
-value => '', |
1174 |
-HttpOnly => 1, |
1182 |
-HttpOnly => 1, |
Lines 1255-1262
sub checkauth {
Link Here
|
1255 |
if ( $loggedin || $authnotrequired ) |
1263 |
if ( $loggedin || $authnotrequired ) |
1256 |
{ |
1264 |
{ |
1257 |
# successful login |
1265 |
# successful login |
1258 |
unless ($cookie) { |
1266 |
unless (@$cookie) { |
1259 |
$cookie = $query->cookie( |
1267 |
push @$cookie, $query->cookie( |
1260 |
-name => 'CGISESSID', |
1268 |
-name => 'CGISESSID', |
1261 |
-value => '', |
1269 |
-value => '', |
1262 |
-HttpOnly => 1, |
1270 |
-HttpOnly => 1, |