Changeset 28958 for main/trunk/greenstone2
- Timestamp:
- 2014-04-03T17:34:44+13:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone2/common-src/cgi-bin/gliserver.pl
r27411 r28958 196 196 } 197 197 198 my $users_db_content;199 198 if($gsdl_cgi->greenstone_version() == 2) { 199 my $users_db_content; 200 200 my $etc_directory = &util::filename_cat($ENV{'GSDLHOME'}, "etc"); 201 201 my $users_db_file_path = &util::filename_cat($etc_directory, "users.gdb"); … … 208 208 } 209 209 close(USERS_DB); 210 }211 elsif($gsdl_cgi->greenstone_version() == 3) {212 my $gsdl3srchome = $ENV{'GSDL3SRCHOME'};213 214 my $java = $gsdl_cgi->get_java_path();215 my $java_gsdl3_classpath = &util::filename_cat($gsdl3srchome, "web", "WEB-INF", "lib", "gsdl3.jar");216 my $java_derby_classpath = &util::filename_cat($gsdl3srchome, "web", "WEB-INF", "lib", "derby.jar");217 my $java_classpath;218 my $gsdlos = $ENV{'GSDLOS'};219 if ($gsdlos !~ m/windows/){220 $java_classpath = $java_gsdl3_classpath . ":" . $java_derby_classpath;221 }else{222 $java_classpath = $java_gsdl3_classpath . ";" . $java_derby_classpath;223 }224 my $java_args = &util::filename_cat($gsdl3srchome, "web", "sites", $site, "etc", "usersDB");225 $gsdl_cgi->checked_chdir($java_args);226 my $java_command="\"$java\" -classpath \"$java_classpath\" org.greenstone.gsdl3.util.usersDB2txt \"$java_args\" 2>&1";227 $users_db_content = `$java_command`;228 }229 210 230 211 # Get the user account information from the usersDB database … … 232 213 233 214 # a line dividing one user entry from another is made up of 70 hyphens for GS2 (37 hyphens for GS3) 234 my $horizontal_divider = ($gsdl_cgi->greenstone_version() == 2) ? q/-{70}/ : q/-{37}/;215 my $horizontal_divider = q/-{70}/; 235 216 foreach my $users_db_entry (split($horizontal_divider, $users_db_content)) { 236 217 if ($users_db_entry =~ m/\n?\[(.+)\]\n/ || $users_db_entry =~ m/\n?USERNAME = ([^\n]*)\n/) { # GS2 and GS3 formats … … 246 227 247 228 # Check password 248 my $pwdLine = ($gsdl_cgi->greenstone_version() == 2) ? q/\<password\>(.*)/ : q/\n?PASSWORD = (.*)\n/;229 my $pwdLine = q/\<password\>(.*)/; 249 230 my ($valid_user_password) = ($user_data =~ m/$pwdLine/); 250 231 if ($user_password ne $valid_user_password) { … … 253 234 254 235 # Check group 255 my $groupLine = ($gsdl_cgi->greenstone_version() == 2) ? q/\<groups\>(.*)/ : q/\n?GROUPS = (.*)\n/;236 my $groupLine = q/\<groups\>(.*)/; 256 237 my ($user_groups) = ($user_data =~ m/$groupLine/); 257 238 … … 276 257 } 277 258 $gsdl_cgi->generate_error("Authentication failed: user is not in the required group."); 259 } 260 261 # "GS3\web\WEB-INF\lib\gsdl3.jar;GS3\web\WEB-INF\lib\derby.jar" 262 # org.greenstone.gsdl3.util.usersDBRealm2txt "GSDL3SRCHOME" username pwd <col> 2>&1 263 elsif($gsdl_cgi->greenstone_version() == 3) { 264 my $gsdl3srchome = $ENV{'GSDL3SRCHOME'}; 265 266 my $java = $gsdl_cgi->get_java_path(); 267 my $java_gsdl3_classpath = &util::filename_cat($gsdl3srchome, "web", "WEB-INF", "lib", "gsdl3.jar"); 268 my $java_derby_classpath = &util::filename_cat($gsdl3srchome, "web", "WEB-INF", "lib", "derby.jar"); 269 my $java_classpath; 270 my $gsdlos = $ENV{'GSDLOS'}; 271 if ($gsdlos !~ m/windows/){ 272 $java_classpath = $java_gsdl3_classpath . ":" . $java_derby_classpath; 273 }else{ 274 $java_classpath = $java_gsdl3_classpath . ";" . $java_derby_classpath; 275 } 276 my $java_args = "\"$gsdl3srchome\" \"$username\" \"$user_password\""; 277 if ($collection ne "") { 278 $java_args += " \"$collection\""; 279 } 280 281 $gsdl_cgi->checked_chdir($gsdl3srchome); 282 my $java_command="\"$java\" -classpath \"$java_classpath\" org.greenstone.gsdl3.util.ServletRealmCheck $java_args 2>&1"; # call it ServletRealmCheck 283 my $java_output = `$java_command`; 284 if ($java_output =~ m/^Authentication failed:/) { # $java_output contains the error message 285 $gsdl_cgi->generate_error($java_output); # "\nJAVA_COMMAND: $java_command\n" 286 } 287 else { # success, $java_output is the user_groups list 288 return $java_output; 289 } 290 } 278 291 } 279 292 … … 898 911 foreach $sites_dir(@sites_dir) 899 912 { 900 if (!(($sites_dir eq ".") || ($sites_dir eq "..") || ($sites_dir eq "CVS") || ($sites_dir eq ".DS_Store") ))913 if (!(($sites_dir eq ".") || ($sites_dir eq "..") || ($sites_dir eq "CVS") || ($sites_dir eq ".DS_Store") || ($sites_dir eq "ADDING-A-SITE.txt"))) 901 914 { 902 915 my $site_dir_path= &util::filename_cat($sites_directory,$sites_dir);
Note:
See TracChangeset
for help on using the changeset viewer.