-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathsso.class.php
More file actions
88 lines (78 loc) · 1.59 KB
/
Copy pathsso.class.php
File metadata and controls
88 lines (78 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
//This file cannot be called directly, only included.
if (str_replace(DIRECTORY_SEPARATOR, "/", __FILE__) == $_SERVER['SCRIPT_FILENAME']) {
exit;
}
class SSOException extends Exception
{
public function printErrorMessage() {
header("Content-Type: text/plain");
echo $this -> getCode().', '.$this -> getMessage();
}
const INVALID_KEY = 1001;
const EXPIRED_KEY = 1002;
const NOT_IMPLEMENTED = 1003;
const CONNECTION_ERROR = 1004;
}
class SSO
{
/**
*
* @var unknown_type
*/
public $key = 0;
/**
*
* @var unknown_type
*/
public $allowedIps = array();
/**
*
* @var unknown_type
*/
public $timeout = 300;
/**
*
* @return unknown_type
*/
public function __construct() {}
/**
*
* @param $descriptor
* @return unknown_type
*/
public function checkDescriptor($descriptor) {
if (!is_numeric($descriptor)) {
throw new SSOException("The key must be numeric", SSOException::INVALID_KEY);
}
return true;
}
/**
*
* @param $descriptor
* @return unknown_type
*/
public function createKey($descriptor) {
$this -> key = time() + $descriptor;
return $this -> key;
}
/**
*
* @return unknown_type
*/
public function printKey() {
echo '0,'.$this -> key;
}
/**
*
* @param $descriptor
* @param $param
* @return unknown_type
*/
public function checkKey($descriptor, $param) {
if (time() + $param - $descriptor < $this -> timeout) {
throw new SSOException('Key has expired', SSOException::EXPIRED_KEY);
}
return true;
}
}