Skip to content

Commit e399baa

Browse files
committed
Change ServerController whitespace.
1 parent 23d7507 commit e399baa

File tree

1 file changed

+152
-123
lines changed

1 file changed

+152
-123
lines changed

src/ServerConfig.php

Lines changed: 152 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,24 @@
22

33
namespace Pdsinterop\Solid;
44

5-
class ServerConfig {
6-
private $path;
7-
private $serverConfig;
8-
private $userConfig;
9-
10-
public function __construct($path) {
11-
$this->path = $path;
12-
$this->serverConfigFile = $this->path . "serverConfig.json";
13-
$this->userConfigFile = $this->path . "user.json";
14-
$this->serverConfig = $this->loadConfig();
15-
$this->userConfig = $this->loadUserConfig();
16-
17-
}
5+
class ServerConfig
6+
{
7+
////////////////////////////// CLASS PROPERTIES \\\\\\\\\\\\\\\\\\\\\\\\\\\\
8+
private $path;
9+
private $serverConfig;
10+
private $userConfig;
11+
12+
//////////////////////////////// PUBLIC API \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
13+
14+
public function __construct($path)
15+
{
16+
$this->path = $path;
17+
$this->serverConfigFile = $this->path . "serverConfig.json";
18+
$this->userConfigFile = $this->path . "user.json";
19+
$this->serverConfig = $this->loadConfig();
20+
$this->userConfig = $this->loadUserConfig();
21+
22+
}
1823

1924
public function getAllowedOrigins()
2025
{
@@ -23,7 +28,7 @@ public function getAllowedOrigins()
2328
$serverConfig = $this->serverConfig;
2429
foreach ($serverConfig as $value) {
2530
if (isset($value['redirect_uris'])) {
26-
foreach($value['redirect_uris'] as $url) {
31+
foreach ($value['redirect_uris'] as $url) {
2732
$allowedOrigins[] = parse_url($url)['host'];
2833
}
2934
}
@@ -32,113 +37,137 @@ public function getAllowedOrigins()
3237
return array_unique($allowedOrigins);
3338
}
3439

35-
private function loadConfig() {
36-
if (!file_exists($this->serverConfigFile)) {
37-
$keySet = $this->generateKeySet();
38-
$this->serverConfig = array(
39-
"encryptionKey" => $keySet['encryptionKey'],
40-
"privateKey" => $keySet['privateKey']
41-
);
42-
$this->saveConfig();
43-
}
44-
return json_decode(file_get_contents($this->serverConfigFile), true);
45-
}
46-
private function saveConfig() {
47-
file_put_contents($this->serverConfigFile, json_encode($this->serverConfig, JSON_PRETTY_PRINT));
48-
}
49-
private function loadUserConfig() {
50-
if (!file_exists($this->userConfigFile)) {
51-
$this->userConfig = array(
52-
"allowedClients" => array()
53-
);
54-
$this->saveUserConfig();
55-
}
56-
return json_decode(file_get_contents($this->userConfigFile), true);
57-
}
58-
private function saveUserConfig() {
59-
file_put_contents($this->userConfigFile, json_encode($this->userConfig, JSON_PRETTY_PRINT));
60-
}
61-
62-
/* Server data */
63-
public function getPrivateKey() {
64-
return $this->serverConfig['privateKey'];
65-
}
66-
67-
public function getEncryptionKey() {
68-
return $this->serverConfig['encryptionKey'];
69-
}
70-
71-
public function getClientConfigById($clientId) {
72-
$clients = (array)$this->serverConfig['clients'];
73-
74-
if (array_key_exists($clientId, $clients)) {
75-
return $clients[$clientId];
76-
}
77-
return null;
78-
}
79-
80-
public function saveClientConfig($clientConfig) {
81-
$clientId = uuidv4();
82-
$this->serverConfig['clients'][$clientId] = $clientConfig;
83-
$this->saveConfig();
84-
return $clientId;
85-
}
86-
87-
public function saveClientRegistration($origin, $clientData) {
88-
$originHash = md5($origin);
89-
$existingRegistration = $this->getClientRegistration($originHash);
90-
if ($existingRegistration && isset($existingRegistration['client_name'])) {
91-
return $originHash;
92-
}
93-
94-
$clientData['client_name'] = $origin;
95-
$clientData['client_secret'] = md5(random_bytes(32));
96-
$this->serverConfig['client-' . $originHash] = $clientData;
97-
$this->saveConfig();
98-
return $originHash;
99-
}
100-
101-
public function getClientRegistration($clientId) {
102-
if (isset($this->serverConfig['client-' . $clientId])) {
103-
return $this->serverConfig['client-' . $clientId];
104-
} else {
105-
return array();
106-
}
107-
}
108-
109-
/* User specific data */
110-
public function getAllowedClients($userId) {
111-
return $this->userConfig['allowedClients'];
112-
}
113-
114-
public function addAllowedClient($userId, $clientId) {
115-
$this->userConfig['allowedClients'][] = $clientId;
116-
$this->userConfig['allowedClients'] = array_unique($this->userConfig['allowedClients']);
117-
$this->saveUserConfig();
118-
}
119-
120-
public function removeAllowedClient($userId, $clientId) {
121-
$this->userConfig['allowedClients'] = array_diff($this->userConfig['allowedClients'], array($clientId));
122-
$this->saveUserConfig();
123-
}
124-
125-
/* Helper functions */
126-
private function generateKeySet() {
127-
$config = array(
128-
"digest_alg" => "sha256",
129-
"private_key_bits" => 2048,
130-
"private_key_type" => OPENSSL_KEYTYPE_RSA,
131-
);
132-
// Create the private and public key
133-
$key = openssl_pkey_new($config);
134-
135-
// Extract the private key from $key to $privateKey
136-
openssl_pkey_export($key, $privateKey);
137-
$encryptionKey = base64_encode(random_bytes(32));
138-
$result = array(
139-
"privateKey" => $privateKey,
140-
"encryptionKey" => $encryptionKey
141-
);
142-
return $result;
143-
}
40+
private function loadConfig()
41+
{
42+
if ( ! file_exists($this->serverConfigFile)) {
43+
$keySet = $this->generateKeySet();
44+
$this->serverConfig = [
45+
"encryptionKey" => $keySet['encryptionKey'],
46+
"privateKey" => $keySet['privateKey'],
47+
];
48+
$this->saveConfig();
49+
}
50+
51+
return json_decode(file_get_contents($this->serverConfigFile), true);
52+
}
53+
54+
private function saveConfig()
55+
{
56+
file_put_contents($this->serverConfigFile, json_encode($this->serverConfig, JSON_PRETTY_PRINT));
57+
}
58+
59+
private function loadUserConfig()
60+
{
61+
if ( ! file_exists($this->userConfigFile)) {
62+
$this->userConfig = [
63+
"allowedClients" => [],
64+
];
65+
$this->saveUserConfig();
66+
}
67+
68+
return json_decode(file_get_contents($this->userConfigFile), true);
69+
}
70+
71+
private function saveUserConfig()
72+
{
73+
file_put_contents($this->userConfigFile, json_encode($this->userConfig, JSON_PRETTY_PRINT));
74+
}
75+
76+
/* Server data */
77+
public function getPrivateKey()
78+
{
79+
return $this->serverConfig['privateKey'];
80+
}
81+
82+
public function getEncryptionKey()
83+
{
84+
return $this->serverConfig['encryptionKey'];
85+
}
86+
87+
public function getClientConfigById($clientId)
88+
{
89+
$clients = (array) $this->serverConfig['clients'];
90+
91+
if (array_key_exists($clientId, $clients)) {
92+
return $clients[$clientId];
93+
}
94+
95+
return null;
96+
}
97+
98+
public function saveClientConfig($clientConfig)
99+
{
100+
$clientId = uuidv4();
101+
$this->serverConfig['clients'][$clientId] = $clientConfig;
102+
$this->saveConfig();
103+
104+
return $clientId;
105+
}
106+
107+
public function saveClientRegistration($origin, $clientData)
108+
{
109+
$originHash = md5($origin);
110+
$existingRegistration = $this->getClientRegistration($originHash);
111+
if ($existingRegistration && isset($existingRegistration['client_name'])) {
112+
return $originHash;
113+
}
114+
115+
$clientData['client_name'] = $origin;
116+
$clientData['client_secret'] = md5(random_bytes(32));
117+
$this->serverConfig['client-' . $originHash] = $clientData;
118+
$this->saveConfig();
119+
120+
return $originHash;
121+
}
122+
123+
public function getClientRegistration($clientId)
124+
{
125+
if (isset($this->serverConfig['client-' . $clientId])) {
126+
return $this->serverConfig['client-' . $clientId];
127+
} else {
128+
return [];
129+
}
130+
}
131+
132+
/* User specific data */
133+
public function getAllowedClients()
134+
{
135+
return $this->userConfig['allowedClients'];
136+
}
137+
138+
public function addAllowedClient($userId, $clientId)
139+
{
140+
$this->userConfig['allowedClients'][] = $clientId;
141+
$this->userConfig['allowedClients'] = array_unique($this->userConfig['allowedClients']);
142+
$this->saveUserConfig();
143+
}
144+
145+
public function removeAllowedClient($userId, $clientId)
146+
{
147+
$this->userConfig['allowedClients'] = array_diff($this->userConfig['allowedClients'], [$clientId]);
148+
$this->saveUserConfig();
149+
}
150+
151+
////////////////////////////// UTILITY METHODS \\\\\\\\\\\\\\\\\\\\\\\\\\\\\
152+
153+
private function generateKeySet()
154+
{
155+
$config = [
156+
"digest_alg" => "sha256",
157+
"private_key_bits" => 2048,
158+
"private_key_type" => OPENSSL_KEYTYPE_RSA,
159+
];
160+
// Create the private and public key
161+
$key = openssl_pkey_new($config);
162+
163+
// Extract the private key from $key to $privateKey
164+
openssl_pkey_export($key, $privateKey);
165+
$encryptionKey = base64_encode(random_bytes(32));
166+
$result = [
167+
"privateKey" => $privateKey,
168+
"encryptionKey" => $encryptionKey,
169+
];
170+
171+
return $result;
172+
}
144173
}

0 commit comments

Comments
 (0)