- Timestamp:
- 2022-03-10T19:01:59+13:00 (2 years ago)
- Location:
- main/trunk/greenstone2/common-src/cgi-bin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/common-src/cgi-bin/gliserver.pl
r34577 r36096 112 112 return; 113 113 } 114 115 114 if ($cmd eq "get-site-names" && $gsdl_cgi->greenstone_version() == 3) { 116 115 &get_site_names($gsdl_cgi); 117 116 return; 118 117 } 118 119 if ($cmd eq "get-default-servlet-path" && $gsdl_cgi->greenstone_version() == 3) { 120 &get_default_servlet_path($gsdl_cgi); 121 return; 122 } 123 119 124 # I assume this is so we can check handling of a time out 120 125 if ($cmd eq "timeout-test") { 121 126 while (1) { } 122 127 } 123 128 124 129 # All other commands require a username, for locking and authentication 125 130 my $username = $gsdl_cgi->clean_param("un"); … … 136 141 $gsdl_cgi->delete("ts"); 137 142 143 # these gs3 commands don't need site 144 if ($gsdl_cgi->greenstone_version() != 2) { 145 if ($cmd eq "download-web-xml-file") { 146 &download_web_xml_file($gsdl_cgi, $username, $timestamp); 147 return; 148 } 149 if ($cmd eq "user-validation") { 150 &user_validation($gsdl_cgi, $username, $timestamp); 151 return; 152 } 153 } 154 138 155 my $site; # undefined on declaration, see http://perldoc.perl.org/perlsyn.html 139 156 … … 147 164 } 148 165 149 150 166 if ($cmd eq "delete-collection") { 151 167 &delete_collection($gsdl_cgi, $username, $timestamp, $site); … … 196 212 &file_exists($gsdl_cgi, $site); 197 213 return; 198 }199 # cmds not in Greenstone 2:200 if ($gsdl_cgi->greenstone_version() != 2) {201 if ($cmd eq "download-web-xml-file") {202 &download_web_xml_file($gsdl_cgi, $username, $timestamp, $site);203 return;204 }205 if ($cmd eq "user-validation") {206 &user_validation($gsdl_cgi, $username, $timestamp, $site);207 return;208 }209 214 } 210 215 … … 318 323 # this is the only subroutine here that uses library servlet name param 319 324 my $library_servlet_name = $gsdl_cgi->clean_param("servlet"); 325 if (!defined $library_servlet_name) { 326 # try config default 327 $library_servlet_name = $gsdl_cgi->get_default_servlet(); # might be null 328 } 320 329 #if (!defined $library_servlet_name) { 321 330 #$library_servlet_name = "library"; 322 331 #} 332 323 333 $gsdl_cgi->delete("servlet"); 324 334 … … 345 355 } 346 356 $gsdl_cgi->checked_chdir($gsdl3home); 347 my $java_command="\"$java\" -classpath \"$java_classpath\" org.greenstone.gsdl3.util.ServletRealmCheck $java_args 2>&1"; 357 my $java_command="\"$java\" -classpath \"$java_classpath\" org.greenstone.gsdl3.util.ServletRealmCheck $java_args 2>&1"; 358 348 359 my $java_output = `$java_command`; 349 360 if ($java_output =~ m/^Authentication failed:/) { # $java_output contains the error message 350 $gsdl_cgi->generate_error($java_output ); # "\nJAVA_COMMAND: $java_command\n"361 $gsdl_cgi->generate_error($java_output . "\nJAVA_COMMAND: $java_command\n"); 351 362 } 352 363 # TODO check for errors with running the java command … … 428 439 # This routine, which uses the variable site, won't get called by GS2, 429 440 sub user_validation{ 430 my ($gsdl_cgi, $username, $timestamp , $site) = @_;441 my ($gsdl_cgi, $username, $timestamp) = @_; 431 442 432 443 # Users can be in any group to perform this action 433 my $user_err = &authenticate_user($gsdl_cgi, $username, "" , $site);444 my $user_err = &authenticate_user($gsdl_cgi, $username, ""); 434 445 if (defined $user_err && $user_err!~ m/ERROR/){ 435 446 if ($user_err!~ m/ERROR/){ … … 844 855 sub download_web_xml_file 845 856 { 846 my ($gsdl_cgi, $username, $timestamp , $site) = @_;847 857 my ($gsdl_cgi, $username, $timestamp) = @_; 858 848 859 # Users can be in any group to perform this action 849 my $user_groups = &authenticate_user($gsdl_cgi, $username, "" , $site);850 860 my $user_groups = &authenticate_user($gsdl_cgi, $username, ""); 861 851 862 # language and region Environment Variable setting on the client side that was used to zip files. 852 863 my $lang_env = $gsdl_cgi->clean_param("lr") || ""; … … 891 902 892 903 &put_file($gsdl_cgi, $zip_file_path, "application/zip"); 893 894 904 unlink("$zip_file_path") unless $debugging_enabled; 895 905 } … … 899 909 { 900 910 my ($gsdl_cgi, $username, $timestamp, $site) = @_; 901 902 my $script = $gsdl_cgi->clean_param("script"); 911 my $script = $gsdl_cgi->clean_param("script"); 903 912 if ((!defined $script) || ($script =~ m/^\s*$/)) { 904 913 $gsdl_cgi->generate_error("No script specified."); 905 914 } 906 915 $gsdl_cgi->delete("script"); 907 916 908 917 # Users can be in any group to perform this action 909 918 &authenticate_user($gsdl_cgi, $username, "", $site); 910 919 $gsdl_cgi->delete("ts"); ## two lines from GS3 version, doesn't seem to harm GS2 911 920 $gsdl_cgi->delete("pw"); 912 921 913 922 914 923 my $perl_args = ""; … … 972 981 sub get_site_names 973 982 { 974 my ($gsdl_cgi , $username, $timestamp, $site) = @_;983 my ($gsdl_cgi) = @_; 975 984 my $sites_directory = &util::filename_cat($ENV{'GSDL3HOME'}, "sites"); 976 985 … … 1009 1018 } 1010 1019 1020 sub get_default_servlet_path 1021 { 1022 my ($gsdl_cgi) = @_; 1023 my $default_servlet = $gsdl_cgi->get_default_servlet(); 1024 if ($default_servlet !~ /^\//) { 1025 $default_servlet = "/".$default_servlet; 1026 } 1027 print STDOUT "Content-type:text/plain\n\n"; 1028 print STDOUT "$default_servlet\n"; 1029 } 1030 1031 1011 1032 sub move_collection_file 1012 1033 { … … 1306 1327 $gsdl_cgi->generate_error("ERROR. Filehandle undefined. No file uploaded (GS3 server)."); 1307 1328 } else { 1329 1308 1330 while ($bread=read($fh, $buf, 1024)) { 1309 1331 print FOUT $buf; 1310 1332 } 1311 1333 } 1334 1312 1335 } 1313 1336 close(FOUT); -
main/trunk/greenstone2/common-src/cgi-bin/gsdlCGI.pm
r31989 r36096 242 242 243 243 244 244 # Note, this can only be called while we are still in the cgi directory, not after chdir to gsdl. 245 245 sub get_config_info { 246 246 my $self = shift @_; 247 247 my ($infotype, $optional) = @_; 248 248 249 my $site_filename = $self->{'site_filename'}; 250 open (FILEIN, "<$site_filename") 251 || $self->generate_error("Could not open $site_filename"); 252 253 my $config_content = ""; 254 while(defined (my $line = <FILEIN>)) { 255 $config_content .= $line; 256 } 257 close(FILEIN); 258 259 my ($loc) = ($config_content =~ m/^$infotype\s+((\".+\")|(\S+))\s*\n/m); 249 if (! defined $self->{'config_file_content'}) { 250 my $site_filename = $self->{'site_filename'}; 251 open (FILEIN, "<$site_filename") 252 || $self->generate_error("Could not open $site_filename, to read $infotype"); 253 254 my $config_content = ""; 255 while(defined (my $line = <FILEIN>)) { 256 $config_content .= $line; 257 } 258 close(FILEIN); 259 $self->{'config_file_content'} = $config_content; 260 } 261 262 # my ($loc) = ($config_content =~ m/^$infotype\s+((\".+\")|(\S+))\s*\n/m); 263 my ($loc) = ($self->{'config_file_content'} =~ m/^$infotype\s+((\".+\")|(\S+))\s*\n/m); 260 264 $loc =~ s/\"//g if defined $loc; 261 265 262 266 if ((!defined $loc) || ($loc =~ m/^\s*$/)) { 263 267 if((!defined $optional) || (!$optional)) { 264 $self->generate_error("$infotype is not set in $s ite_filename");268 $self->generate_error("$infotype is not set in $self->{'site_filename'}"); 265 269 } 266 270 } … … 400 404 } 401 405 406 sub get_default_servlet { 407 my $self = shift @_; 408 409 if (defined $self->{'default_servlet'} ){ 410 return $self->{'default_servlet'}; 411 } 412 413 my $optional = 1; # allows for absence of the field 414 $self->{'default_servlet'} = $self->get_config_info("defaultservlet", $optional); 415 if (!defined $self->{'default_servlet'}) # there was no config param 416 { 417 $self->{'default_servlet'} = ""; # so we don't need to look it up from the file next time 418 } 419 return $self->{'default_servlet'}; 420 } 402 421 sub setup_fedora_homes { 403 422 my $self = shift @_; … … 517 536 } 518 537 $ENV{'GSDL3HOME'} = $gsdl3home; 538 519 539 } 520 540
Note:
See TracChangeset
for help on using the changeset viewer.