forked from jumbojett/OpenID-Connect-PHP
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathinit.php
71 lines (66 loc) · 2.39 KB
/
init.php
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
<?php
/**
* Copyright MITRE 2015
*
* AuthOpenIDConnect for PHP5
* Author: Michael Jett <[email protected]>
* Author: Oded Arbel <[email protected]>
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License. You may obtain
* a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
/**
*
* JWT signature verification support by Jonathan Reed <[email protected]>
* Licensed under the same license as the rest of this file.
*
* phpseclib is required to validate the signatures of some tokens.
* It can be downloaded from: http://phpseclib.sourceforge.net/
*/
if (!class_exists('\\phpseclib\\Crypt\\RSA')) {
user_error('Unable to find \\phpseclib\\Crypt\\RSA.php. Ensure phpseclib is installed and in include_path');
}
/**
* A wrapper around base64_decode which decodes Base64URL-encoded data,
* which is not the same alphabet as base64.
*/
function base64url_decode($base64url) {
return base64_decode(b64url2b64($base64url));
}
/**
* Per RFC4648, "base64 encoding with URL-safe and filename-safe
* alphabet". This just replaces characters 62 and 63. None of the
* reference implementations seem to restore the padding if necessary,
* but we'll do it anyway.
*
*/
function b64url2b64($base64url) {
// "Shouldn't" be necessary, but why not
$padding = strlen($base64url) % 4;
if ($padding > 0) {
$base64url .= str_repeat("=", 4 - $padding);
}
return strtr($base64url, '-_', '+/');
}
/**
* Require the CURL and JSON PHP extentions to be installed
*/
if (!function_exists('curl_init')) {
throw new OpenIDConnectClientException('OpenIDConnect needs the CURL PHP extension.');
}
if (!function_exists('json_decode')) {
throw new OpenIDConnectClientException('OpenIDConnect needs the JSON PHP extension.');
}
require_once(__DIR__ . '/classes/OpenIDConnectClientException.php');
require_once(__DIR__ . '/classes/OpenIDSessionStorageIF.php');
require_once(__DIR__ . '/classes/OpenIDSessionStorageDefault.php');
require_once(__DIR__ . '/classes/OpenIDConnectClient.php');