version 1.1, 2016/07/25 19:50:16
|
version 1.5, 2017/05/18 22:13:57
|
Line 35 use Apache::lonlocal();
|
Line 35 use Apache::lonlocal();
|
use Apache::lonnet(); |
use Apache::lonnet(); |
use Apache::loncommon(); |
use Apache::loncommon(); |
use Apache::lonhtmlcommon(); |
use Apache::lonhtmlcommon(); |
|
use DateTime; |
|
use DateTime::Format::x509; |
use LONCAPA; |
use LONCAPA; |
|
|
sub print_certstatus { |
sub print_certstatus { |
Line 57 sub print_certstatus {
|
Line 59 sub print_certstatus {
|
'host' => 'Connections Certificate', |
'host' => 'Connections Certificate', |
'hostname' => 'Replication Certificate', |
'hostname' => 'Replication Certificate', |
'ca' => 'LON-CAPA CA Certificate', |
'ca' => 'LON-CAPA CA Certificate', |
|
'expired' => 'Expired', |
|
'future' => 'Future validity', |
|
'nokey' => 'No key', |
|
'otherkey' => 'No matching key', |
); |
); |
my @files = qw(key host hostname ca); |
my @files = qw(key host hostname ca); |
my @fields = qw(status cn start end alg size email); |
my @fields = qw(status cn start end alg size email); |
foreach my $server (sort(keys(%{$servers}))) { |
foreach my $server (sort(keys(%{$servers}))) { |
my $hostname = &Apache::lonnet::hostname($server); |
|
my ($result,$hashref) = &Apache::lonnet::get_servercerts_info($server,$context); |
my ($result,$hashref) = &Apache::lonnet::get_servercerts_info($server,$context); |
if ($result eq 'ok' && ref($hashref) eq 'HASH') { |
if ($result eq 'ok' && ref($hashref) eq 'HASH') { |
if ($target eq 'web') { |
if ($target eq 'web') { |
|
my $hostname = &Apache::lonnet::hostname($server); |
$message .= "<fieldset><legend>$hostname ($server)</legend>". |
$message .= "<fieldset><legend>$hostname ($server)</legend>". |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table(). |
&Apache::loncommon::start_data_table_header_row()."\n"; |
&Apache::loncommon::start_data_table_header_row()."\n"; |
Line 83 sub print_certstatus {
|
Line 89 sub print_certstatus {
|
$message .= $file.'='; |
$message .= $file.'='; |
} |
} |
if (ref($hashref->{$file}) eq 'HASH') { |
if (ref($hashref->{$file}) eq 'HASH') { |
|
my ($starttime,$endtime,$dateinvalid); |
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= '<td>'.$lt{'yes'}.'</td>'; |
$message .= '<td>'.$lt{'yes'}.'</td>'; |
} else { |
} else { |
$message .= $lt{'yes'}.','; |
$message .= 'yes,'; |
|
} |
|
unless ($file eq 'key') { |
|
if ($hashref->{$file}->{'end'} ne '') { |
|
my $dt = DateTime::Format::x509->parse_datetime($hashref->{$file}->{'end'}); |
|
if (ref($dt)) { |
|
$endtime = $dt->epoch; |
|
if ($endtime < time) { |
|
if ($target eq 'web') { |
|
$dateinvalid = $lt{'expired'}; |
|
} else { |
|
$dateinvalid = 'expired'; |
|
} |
|
} |
|
} |
|
} |
|
if ($hashref->{$file}->{'start'} ne '') { |
|
my $dt = DateTime::Format::x509->parse_datetime($hashref->{$file}->{'start'}); |
|
if (ref($dt)) { |
|
$starttime = $dt->epoch; |
|
if ($starttime > time) { |
|
unless ($dateinvalid) { |
|
if ($target eq 'web') { |
|
$dateinvalid = $lt{'future'}; |
|
} else { |
|
$dateinvalid = 'future'; |
|
} |
|
} |
|
} |
|
} |
|
} |
} |
} |
foreach my $item (@fields) { |
foreach my $item (@fields) { |
my $display = $hashref->{$file}->{$item}; |
my $display = $hashref->{$file}->{$item}; |
if ($target eq 'web') { |
if ($item eq 'status') { |
if ($item eq 'status') { |
if ($file eq 'key') { |
$display = &Apache::lonhtmlcommon::confirm_success($display); |
if ($display =~ /ok$/) { |
|
if ($target eq 'web') { |
|
$display = &Apache::lonhtmlcommon::confirm_success($display); |
|
} |
|
} |
|
} elsif ($file eq 'ca') { |
|
if ($dateinvalid) { |
|
$display = $dateinvalid; |
|
} elsif ($target eq 'web') { |
|
$display = &Apache::lonhtmlcommon::confirm_success($display); |
|
} |
|
} elsif ($display =~ /^ok/) { |
|
if ($dateinvalid) { |
|
$display = $dateinvalid; |
|
} elsif ($target eq 'web') { |
|
$display = &Apache::lonhtmlcommon::confirm_success($display); |
|
} |
|
} elsif (($display eq 'nokey') || ($display eq 'otherkey')) { |
|
if ($target eq 'web') { |
|
$display = $lt{$display}; |
|
} |
|
} |
|
} elsif ($item eq 'start') { |
|
if ($starttime) { |
|
if ($target eq 'web') { |
|
$display = &Apache::lonlocal::locallocaltime($starttime); |
|
} else { |
|
$display = $starttime; |
|
} |
} |
} |
|
} elsif ($item eq 'end') { |
|
if ($endtime) { |
|
if ($target eq 'web') { |
|
$display = &Apache::lonlocal::locallocaltime($endtime); |
|
} else { |
|
$display = $endtime; |
|
} |
|
} |
|
} |
|
if ($target eq 'web') { |
$message .= "<td>$display</td>"; |
$message .= "<td>$display</td>"; |
} else { |
} else { |
$message .= "$display,"; |
$message .= "$display,"; |
Line 103 sub print_certstatus {
|
Line 178 sub print_certstatus {
|
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= '<td>'.$lt{'no'}.'<td>'; |
$message .= '<td>'.$lt{'no'}.'<td>'; |
} else { |
} else { |
$message .= $lt{'no'}.','; |
$message .= 'no,'; |
} |
} |
foreach my $item (@fields) { |
foreach my $item (@fields) { |
if ($target eq 'web') { |
if ($target eq 'web') { |
Line 111 sub print_certstatus {
|
Line 186 sub print_certstatus {
|
} else { |
} else { |
$message .= ','; |
$message .= ','; |
} |
} |
} |
} |
if ($target eq 'web') { |
} |
$message .= &Apache::loncommon::end_data_table_row()."\n"; |
if ($target eq 'web') { |
} else { |
$message .= &Apache::loncommon::end_data_table_row()."\n"; |
$message =~ s/,$//; |
} else { |
$message .= '&'; |
$message =~ s/,$//; |
} |
$message .= '&'; |
} |
} |
} |
} |
if ($target eq 'web') { |
if ($target eq 'web') { |
Line 128 sub print_certstatus {
|
Line 203 sub print_certstatus {
|
$message .= "\n"; |
$message .= "\n"; |
} else { |
} else { |
if ($target eq 'web') { |
if ($target eq 'web') { |
$message .= "$server error\n"; |
$message .= "$server:error\n"; |
} else { |
} else { |
$message .= "$server error\n"; |
$message .= "$server:error\n"; |
} |
} |
} |
} |
} |
} |