diff --git a/modules/ldapstatus/lib/Auth/Backend/Test/StandardLDAPTest.php b/modules/ldapstatus/lib/Auth/Backend/Test/StandardLDAPTest.php index de92f80298e6a6008c47729cbf9579c50f273465..8212a4492a332d4d66d14200a84cd4d53d76c64e 100755 --- a/modules/ldapstatus/lib/Auth/Backend/Test/StandardLDAPTest.php +++ b/modules/ldapstatus/lib/Auth/Backend/Test/StandardLDAPTest.php @@ -282,12 +282,16 @@ class sspmod_ldapstatus_Auth_Backend_Test_StandardLDAPTest extends sspmod_feide_ if (!empty($output)) { - $cmd2 = 'echo "" | openssl s_client -connect ' . $host . ':' . $port . ' 2> /dev/null | openssl x509 -issuer -noout'; + $cmd2 = 'echo "" | openssl s_client -connect ' . $host . ':' . $port . ' 2> /dev/null | openssl x509 -issuer -subject -noout'; $output2 = shell_exec($cmd2); if (preg_match('/issuer=(.{0,40})/', $output2, $matches) ) { - $result['issuer'] = $matches[1]; + $result['issuer'] = trim($matches[1]); $result[1] .= ' ' . $output2; + + if (preg_match('/subject=(.{0,40})/', $output2, $matches) ) { + $result['subject'] = trim($matches[1]); + } } else { $result[0] = FALSE; $result[1] = 'Did not find Issuer in response [' . $host . ':' . $port . ']'; diff --git a/modules/ldapstatus/templates/ldapstatus.php b/modules/ldapstatus/templates/ldapstatus.php index 04e422c590219eee21f6ebff0496b1fb59211df1..cb572f4fba1cc718170fa01ebec50ad652ca4d66 100644 --- a/modules/ldapstatus/templates/ldapstatus.php +++ b/modules/ldapstatus/templates/ldapstatus.php @@ -33,7 +33,7 @@ $this->includeAtTemplateBase('includes/header.php'); <th>Name of institusion</th> <th><a href="?sort=conf">Conf</a></th> <th><a href="?sort=ping">Ping</a></th> - <th colspan="3"><a href="?sort=cert">Cert</a></th> + <th colspan="4"><a href="?sort=cert">Cert</a></th> <th><a href="?sort=adminBind">Admin</a></th> <th><a href="?sort=ldapSearchBogus">S=bogus</a></th> <th><a href="?sort=configTest">test</a></th> @@ -107,6 +107,23 @@ foreach($this->data['sortedOrgIndex'] as $orgkey) { (isset($res['cert']['expireText']) ? $res['cert']['expireText'] : '<span style="color: #b4b4b4; font-size: x-small">NA</span>' ). '</td>'); + + echo('<td>'); + if (isset($res['cert']['issuer']) && isset($res['cert']['subject'])) { + if ($res['cert']['subject'] === $res['cert']['issuer']) { + echo ('<a title="' . htmlspecialchars($res['cert']['issuer']) . '">S</a>'); + } elseif (in_array($res['cert']['issuer'], array( + '/C=BE/O=Cybertrust/OU=Educational CA/CN', + 's', + ))) { + echo ('<a title="' . htmlspecialchars($res['cert']['issuer']) . '">C</a>'); + } else { + echo ('<a title="' . htmlspecialchars($res['cert']['issuer']) . '">U</a>'); + } + } else { + echo('<span style="color: #b4b4b4; font-size: x-small">NA</span>'); + } + echo('</td>'); showRes('adminBind', $res, $this); showRes('ldapSearchBogus', $res, $this);