#!/usr/local/bin/perl # edit_authparam.cgi # A form for editing authentication programs require './squid-lib.pl'; $access{'authparam'} || &error($text{'authparam_ecannot'}); &ui_print_header(undef, $text{'authparam_title'}, "", "edit_authparam", 0, 0, 0, &restart_button()); $conf = &get_config(); print "
\n"; print "\n"; print "\n"; print "
$text{'authparam_header'}
\n"; if ($squid_version >= 2.5) { # Squid versions 2.5 and above use different config options for # the external authentication program local @auth = &find_config("auth_param", $conf); # Show basic authentication options local %basic = map { $_->{'values'}->[1], $_->{'values'} } grep { $_->{'values'}->[0] eq 'basic' } @auth; print "\n"; print "\n", $m == 1 ? join(" ", @p[2..$#p]) : "", &file_chooser_button("b_auth"); print "\n"; local $c = $basic{'children'}->[2]; print "\n", $c; local @t = @{$basic{'credentialsttl'}}; print "\n"; printf "\n"; local @r = @{$basic{'realm'}}; local $r = join(" ", @r[2..$#r]); print "\n", $r; # Show digest authentication options print "\n"; local %digest = map { $_->{'values'}->[1], $_->{'values'} } grep { $_->{'values'}->[0] eq 'digest' } @auth; print "\n"; print "\n", $m == 1 ? join(" ", @p[2..$#p]) : "", &file_chooser_button("d_auth"); print "\n"; local $c = $digest{'children'}->[2]; print "\n", $c; local @r = @{$digest{'realm'}}; local $r = join(" ", @r[2..$#r]); print "\n", $r; # Show NTML authentication options print "\n"; local %ntlm = map { $_->{'values'}->[1], $_->{'values'} } grep { $_->{'values'}->[0] eq 'ntlm' } @auth; print "\n"; print "\n", $m == 1 ? join(" ", @p[2..$#p]) : "", &file_chooser_button("n_auth"); print "\n"; local $c = $ntlm{'children'}->[2]; print "\n", $c; local $r = $ntlm{'max_challenge_reuses'}->[2]; print "\n", $r; local @t = @{$ntlm{'max_challenge_lifetime'}}; print "\n"; printf "\n"; } elsif ($squid_version >= 2) { # Squid versions 2 and above use a single external # authentication program print "\n"; local $v = &find_config("authenticate_program", $conf); print "\n"; print "\n", $m == 1 ? $v->{'value'} : "", &file_chooser_button("auth"); print "\n"; print "\n"; print &opt_input($text{'eadm_par'}, "proxy_auth_realm", $conf, $text{'eadm_default'}, 40); print "\n"; print "\n"; print &opt_input($text{'eprogs_noap'}, "authenticate_children", $conf, $text{'default'}, 6); print "\n"; if ($squid_version >= 2.4) { print "\n"; print &opt_time_input($text{'authparam_ttl'}, "authenticate_ttl", $conf, $text{'default'}, 6); print "\n"; print "\n"; print &opt_time_input($text{'authparam_ipttl'}, "authenticate_ip_ttl", $conf, $text{'authparam_never'}, 6); print "\n"; } } print "\n"; print "\n"; print "\n"; # my stuff local $taa = &find_value("authenticate_ip_ttl", $conf); if($taa ne ""){ (@ta[0],@ta[1])=split(/\s+/,$taa); } print "\n"; printf "\n"; print "\n"; # end my stuff print "
$text{'authparam_bprogram'}\n"; local @p = @{$basic{'program'}}; local $m = !@p ? 0 : $p[2] =~ /^(\S+)/ && $1 eq $auth_program ? 2 : 1; printf " %s\n", $m == 0 ? "checked" : "", $text{'none'}; printf " %s\n", $m == 2 ? "checked" : "", $text{'eprogs_capweb'}; printf "\n", $m == 1 ? "checked" : ""; printf " %s
$text{'eprogs_noap'} \n"; printf " %s\n", $c eq "" ? "checked" : "", $text{'default'}; printf "\n", $c eq "" ? "" : "checked"; printf "
$text{'eprogs_ttl'} %s\n", !@t ? "checked" : "", $text{'default'}; printf "\n", !@t ? "" : "checked"; print &time_fields("b_ttl", 6, $t[2], $t[3]),"
$text{'eprogs_realm'} \n"; printf " %s\n", $r eq "" ? "checked" : "", $text{'default'}; printf "\n", $r eq "" ? "" : "checked"; printf "

$text{'authparam_dprogram'}\n"; local @p = @{$digest{'program'}}; local $m = @p ? 1 : 0; printf " %s\n", $m == 0 ? "checked" : "", $text{'none'}; printf "\n", $m == 1 ? "checked" : ""; printf " %s
$text{'eprogs_noap'} \n"; printf " %s\n", $c eq "" ? "checked" : "", $text{'default'}; printf "\n", $c eq "" ? "" : "checked"; printf "
$text{'eprogs_realm'} \n"; printf " %s\n", $r eq "" ? "checked" : "", $text{'default'}; printf "\n", $r eq "" ? "" : "checked"; printf "

$text{'authparam_nprogram'}\n"; local @p = @{$ntlm{'program'}}; local $m = @p ? 1 : 0; printf " %s\n", $m == 0 ? "checked" : "", $text{'none'}; printf "\n", $m == 1 ? "checked" : ""; printf " %s
$text{'eprogs_noap'} \n"; printf " %s\n", $c eq "" ? "checked" : "", $text{'default'}; printf "\n", $c eq "" ? "" : "checked"; printf "
$text{'authparam_reuses'} \n"; printf " %s\n", $r eq "" ? "checked" : "", $text{'default'}; printf "\n", $r eq "" ? "" : "checked"; printf "
$text{'authparam_lifetime'} %s\n", !@t ? "checked" : "", $text{'default'}; printf "\n", !@t ? "" : "checked"; print &time_fields("n_ttl", 6, $t[2], $t[3]),"
$text{'eprogs_cap'}\n"; local $m = !$v ? 0 : $v->{'value'} =~ /^(\S+)/ && $1 eq $auth_program ? 2 : 1; printf " %s\n", $m == 0 ? "checked" : "", $text{'none'}; printf " %s\n", $m == 2 ? "checked" : "", $text{'eprogs_capweb'}; printf "\n", $m == 1 ? "checked" : ""; printf " %s

".$text{'authparam_mui_msg'}."

$text{'eprogs_aittl'} %s\n", !@ta ? "checked" : "", $text{'default'}; printf "\n", !@ta ? "" : "checked"; print &time_fields("b_aittl", 6, $ta[0], $ta[1]),"

\n"; print "
\n"; &ui_print_footer("", $text{'eprogs_return'});