Skip to content

Commit fbb4d0e

Browse files
committed
fixes and improvements
1 parent 5949a7b commit fbb4d0e

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

src/Clients/AzureKeyVaultClient.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ public function listSecrets(): array
5454
do {
5555
$response = $this->httpClient->get($url);
5656
$data = json_decode($response->getBody()->getContents(), true);
57+
if (json_last_error() !== JSON_ERROR_NONE) {
58+
throw new SecretProviderException('Invalid JSON response from Azure Key Vault: '.json_last_error_msg());
59+
}
5760

5861
foreach ($data['value'] ?? [] as $secret) {
5962
$secrets[] = [
@@ -87,6 +90,9 @@ public function getSecretValue(string $name, string $version = ''): array
8790
$path = $version ? "/secrets/{$name}/{$version}" : "/secrets/{$name}";
8891
$response = $this->httpClient->get($path.'?api-version='.self::API_VERSION);
8992
$data = json_decode($response->getBody()->getContents(), true);
93+
if (json_last_error() !== JSON_ERROR_NONE) {
94+
throw new SecretProviderException('Invalid JSON response from Azure Key Vault: '.json_last_error_msg());
95+
}
9096

9197
// Extract secret name from ID URL: https://vault.azure.net/secrets/{name}/{version}
9298
$secretName = $name;
@@ -203,6 +209,9 @@ protected function getManagedIdentityToken(): string
203209
]);
204210

205211
$data = json_decode($response->getBody()->getContents(), true);
212+
if (json_last_error() !== JSON_ERROR_NONE) {
213+
throw new SecretProviderException('Invalid JSON response from Azure Managed Identity endpoint: '.json_last_error_msg());
214+
}
206215
if (! isset($data['access_token'])) {
207216
throw new SecretProviderException('Invalid response from Azure Managed Identity endpoint: missing access_token');
208217
}
@@ -221,6 +230,9 @@ protected function getManagedIdentityToken(): string
221230
]);
222231

223232
$data = json_decode($response->getBody()->getContents(), true);
233+
if (json_last_error() !== JSON_ERROR_NONE) {
234+
throw new SecretProviderException('Invalid JSON response from Azure IMDS endpoint: '.json_last_error_msg());
235+
}
224236
if (! isset($data['access_token'])) {
225237
throw new SecretProviderException('Invalid response from Azure IMDS endpoint: missing access_token');
226238
}
@@ -250,6 +262,9 @@ protected function getClientCredentialsToken(string $tenantId, string $clientId,
250262
]);
251263

252264
$data = json_decode($response->getBody()->getContents(), true);
265+
if (json_last_error() !== JSON_ERROR_NONE) {
266+
throw new SecretProviderException('Invalid JSON response from Azure OAuth endpoint: '.json_last_error_msg());
267+
}
253268
if (! isset($data['access_token'])) {
254269
throw new SecretProviderException('Invalid response from Azure OAuth endpoint: missing access_token');
255270
}

src/Clients/GoogleSecretManagerClient.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ public function listSecrets(): array
6060
'query' => $query,
6161
]);
6262
$data = json_decode($response->getBody()->getContents(), true);
63+
if (json_last_error() !== JSON_ERROR_NONE) {
64+
throw new SecretProviderException('Invalid JSON response from Google Cloud: '.json_last_error_msg());
65+
}
6366

6467
foreach ($data['secrets'] ?? [] as $secret) {
6568
$secrets[] = [
@@ -89,6 +92,9 @@ public function getSecretValue(string $name, string $version = 'latest'): array
8992
"/projects/{$this->projectId}/secrets/{$name}/versions/{$version}:access"
9093
);
9194
$data = json_decode($response->getBody()->getContents(), true);
95+
if (json_last_error() !== JSON_ERROR_NONE) {
96+
throw new SecretProviderException('Invalid JSON response from Google Cloud: '.json_last_error_msg());
97+
}
9298

9399
// GCP returns base64-encoded payload
94100
$value = '';
@@ -169,6 +175,9 @@ protected function getMetadataToken(): string
169175
);
170176

171177
$data = json_decode($response->getBody()->getContents(), true);
178+
if (json_last_error() !== JSON_ERROR_NONE) {
179+
throw new SecretProviderException('Invalid JSON response from GCP metadata server: '.json_last_error_msg());
180+
}
172181
if (! isset($data['access_token'])) {
173182
throw new SecretProviderException('Invalid response from GCP metadata server: missing access_token');
174183
}

src/Repositories/RegexRepository.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ public function __construct(
1010
protected Collection $regexCollection
1111
) {}
1212

13-
public static function checkAndSanitize(string $regex, string $replace, string $content, int &$hits = 0): string
13+
public static function checkAndSanitize(string $regex, string $replace, string $content, int &$hits = 0): ?string
1414
{
1515
return preg_replace("~$regex~Si", $replace, $content, -1, $hits);
1616
}
1717

18-
public static function check(string $regex, string $content): int
18+
public static function check(string $regex, string $content): int|false
1919
{
2020
return preg_match_all("~$regex~Si", $content);
2121
}

0 commit comments

Comments
 (0)