Login via Client-Zertifikat...
bernd authored 15 years ago
|
1) <?php
2)
3) require_once('inc/security.php');
4)
5) function get_logins_by_cert($cert)
6) {
7) $cert = mysql_real_escape_string(str_replace(array('-----BEGIN CERTIFICATE-----', '-----END CERTIFICATE-----', ' ', "\n"), array(), $cert));
8) $query = "SELECT type,username,startpage FROM system.clientcert WHERE cert='{$cert}'";
9) $result = db_query($query);
10) if (mysql_num_rows($result) < 1)
11) return NULL;
12) else {
13) $ret = array();
14) while ($row = mysql_fetch_assoc($result)) {
15) $ret[] = $row;
16) }
17) return $ret;
18) }
19) }
20)
21) function get_cert_by_id($id)
22) {
23) $id = (int) $id;
24) if ($id == 0)
25) system_failure('no ID');
26) $query = "SELECT id,dn,issuer,cert,username,startpage FROM system.clientcert WHERE `id`='{$id}' LIMIT 1";
27) $result = db_query($query);
28) if (mysql_num_rows($result) < 1)
29) return NULL;
30) $ret = mysql_fetch_assoc($result);
31) DEBUG($ret);
32) return $ret;
33) }
34)
35)
36) function get_certs_by_username($username)
37) {
38) $username = mysql_real_escape_string($username);
39) if ($username == '')
40) system_failure('empty username');
41) $query = "SELECT id,dn,issuer,cert,startpage FROM system.clientcert WHERE `username`='{$username}'";
42) $result = db_query($query);
43) if (mysql_num_rows($result) < 1)
44) return NULL;
45) while ($row = mysql_fetch_assoc($result)) {
46) $ret[] = $row;
47) }
48) return $ret;
49) }
50)
51)
52) function add_clientcert($certdata, $dn, $issuer, $startpage='')
53) {
|
Ermögliche Client-Cert-Logi...
bernd authored 12 years ago
|
54) $type = NULL;
55) $username = NULL;
56) if ($_SESSION['role'] == ROLE_SYSTEMUSER) {
57) $type = 'user';
58) $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
59) if (isset($_SESSION['subuser']))
60) $username = mysql_real_escape_string($_SESSION['subuser']);
61) $type = 'subuser';
62) } elseif ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT) {
63) $type = 'email';
64) $username = mysql_real_escape_string($_SESSION['mailaccount']);
65) }
66) if (! $type || ! $username) {
67) system_failure('cannot get type or username of login');
68) }
|
Login via Client-Zertifikat...
bernd authored 15 years ago
|
69) $certdata = mysql_real_escape_string($certdata);
70) $dn = maybe_null(mysql_real_escape_string($dn));
71) $issuer = maybe_null(mysql_real_escape_string($issuer));
72) if ($startpage && ! check_path($startpage))
73) system_failure('Startseite kaputt');
74) $startpage = maybe_null(mysql_real_escape_string($startpage));
|
Login via Client-Zertifikat...
bernd authored 15 years ago
|
76) if ($certdata == '')
77) system_failure('Kein Zertifikat');
78) DEBUG($certdata);
79) DEBUG($dn);
80) DEBUG($issuer);
81)
82) db_query("INSERT INTO system.clientcert (`dn`, `issuer`, `cert`, `type`, `username`, `startpage`)
|
Cert-Login geht jetztauch m...
bernd authored 14 years ago
|
83) VALUES ({$dn}, {$issuer}, '{$certdata}', '{$type}', '{$username}', {$startpage})");
|
Ermögliche Client-Cert-Logi...
bernd authored 12 years ago
|
91) $type = NULL;
92) $username = NULL;
93) if ($_SESSION['role'] == ROLE_SYSTEMUSER) {
94) $type = 'user';
95) $username = mysql_real_escape_string($_SESSION['userinfo']['username']);
96) if (isset($_SESSION['subuser']))
97) $username = mysql_real_escape_string($_SESSION['subuser']);
98) $type = 'subuser';
99) } elseif ($_SESSION['role'] == ROLE_VMAIL_ACCOUNT) {
100) $type = 'email';
101) $username = mysql_real_escape_string($_SESSION['mailaccount']);
102) }
103) if (! $type || ! $username) {
104) system_failure('cannot get type or username of login');
105) }
106) db_query("DELETE FROM system.clientcert WHERE id={$id} AND type='{$type}' AND username='{$username}' LIMIT 1");
|