From 525146366f3d03d3b6726147aabdeecc458f7893 Mon Sep 17 00:00:00 2001 From: Marco Rieger Date: Wed, 21 May 2025 15:35:47 +0200 Subject: [PATCH 1/4] update vault image name --- docker-compose.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 5f642fb..3839f8d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: "3" services: vault: - image: vault:latest + image: hashicorp/vault:latest container_name: vault restart: unless-stopped ports: @@ -12,6 +12,4 @@ services: VAULT_TOKEN: 'test' cap_add: - IPC_LOCK - healthcheck: - retries: 5 command: server -dev From c303dc81504cd7e0c8f2eba145b7f90ba0f494e2 Mon Sep 17 00:00:00 2001 From: Marco Rieger Date: Wed, 21 May 2025 15:36:16 +0200 Subject: [PATCH 2/4] convert null warnings to empty array --- src/VaultPHP/Response/MetaData.php | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/VaultPHP/Response/MetaData.php b/src/VaultPHP/Response/MetaData.php index bd6b468..ceea26d 100644 --- a/src/VaultPHP/Response/MetaData.php +++ b/src/VaultPHP/Response/MetaData.php @@ -87,6 +87,15 @@ public function setLeaseDuration(mixed $lease_duration): void $this->lease_duration = (int) $lease_duration; } + /** + * @param array|null $warnings + * @return void + */ + public function setWarnings(array|null $warnings): void + { + $this->warnings = $warnings ?? []; + } + /** * @return string|null From f7ef4ab4ae9371cbd3a31416988d745bdcd1618e Mon Sep 17 00:00:00 2001 From: Marco Rieger Date: Wed, 21 May 2025 15:40:19 +0200 Subject: [PATCH 3/4] update examples --- examples/BulkOperations.php | 20 +++++++++----------- examples/TransitEncryption.php | 30 ++++++++++++------------------ 2 files changed, 21 insertions(+), 29 deletions(-) diff --git a/examples/BulkOperations.php b/examples/BulkOperations.php index 96d6f06..0d9a726 100644 --- a/examples/BulkOperations.php +++ b/examples/BulkOperations.php @@ -2,7 +2,6 @@ namespace Examples; -use Http\Client\Curl\Client; use VaultPHP\Authentication\Provider\Token; use VaultPHP\Exceptions\VaultException; use VaultPHP\Exceptions\VaultResponseException; @@ -15,28 +14,27 @@ use VaultPHP\SecretEngines\Engines\Transit\EncryptionType; use VaultPHP\VaultClient; +use GuzzleHttp\Client; + require_once __DIR__ . '/../vendor/autoload.php'; -// setting up curl http client with SSL -$httpClient = new Client(null, null, [ - CURLOPT_SSLCERT => './ssl.pem', - CURLOPT_SSLCERTTYPE => 'PEM', - CURLOPT_SSLCERTPASSWD => 'fooBar', -]); +// setup http client +$httpClient = new Client(['verify' => false]); -// provide hashicorp vault auth +// setup authentication provider $authenticationProvider = new Token('test'); -// initalize the vault request client +// initialize the vault request client $vaultClient = new VaultClient( $httpClient, $authenticationProvider, - 'https://127.0.0.1:8200' + 'http://127.0.0.1:8200/transit/', ); -// choose your secret engine api +// create eg. Transit API instance $transitApi = new Transit($vaultClient); + // do fancy stuff try { // create key diff --git a/examples/TransitEncryption.php b/examples/TransitEncryption.php index e245271..c424aee 100644 --- a/examples/TransitEncryption.php +++ b/examples/TransitEncryption.php @@ -2,7 +2,6 @@ namespace Examples; -use Http\Client\Curl\Client; use VaultPHP\Authentication\Provider\Token; use VaultPHP\Exceptions\VaultException; use VaultPHP\Exceptions\VaultResponseException; @@ -14,29 +13,26 @@ use VaultPHP\SecretEngines\Engines\Transit\EncryptionType; use VaultPHP\VaultClient; +use GuzzleHttp\Client; + require_once __DIR__ . '/../vendor/autoload.php'; -// setting up curl http client with SSL -$httpClient = new Client(null, null, [ - CURLOPT_SSLCERT => './ssl.pem', - CURLOPT_SSLCERTTYPE => 'PEM', - CURLOPT_SSLCERTPASSWD => 'fooBar', -]); +// setup http client +$httpClient = new Client(['verify' => false]); -// provide hashicorp vault auth +// setup authentication provider $authenticationProvider = new Token('test'); -// initalize the vault request client +// initialize the vault request client $vaultClient = new VaultClient( $httpClient, $authenticationProvider, - 'https://127.0.0.1:8200' + 'http://127.0.0.1:8200/transit/', ); -// choose your secret engine api +// create eg. Transit API instance $transitApi = new Transit($vaultClient); -// do fancy stuff try { // create key $exampleKey = new CreateKeyRequest('exampleKeyName'); @@ -45,19 +41,17 @@ // list keys $listKeyResponse = $transitApi->listKeys(); - var_dump($listKeyResponse->getKeys()); + var_dump($listKeyResponse->getKeys()); // ["exampleKeyName"] // encrypt data $encryptExample = new EncryptDataRequest('exampleKeyName', 'encryptMe'); $encryptResponse = $transitApi->encryptData($encryptExample); - - var_dump($encryptResponse->getCiphertext()); + var_dump($encryptResponse->getCiphertext()); // vault:v1:jt9yxqU2aHd+EIOZs1swB+C3jVLtvyXgpfdfbxi+thNafm0IDQ== // decrypt data $decryptExample = new DecryptDataRequest('exampleKeyName', $encryptResponse->getCiphertext()); $decryptResponse = $transitApi->decryptData($decryptExample); - - var_dump($decryptResponse->getPlaintext()); + var_dump($decryptResponse->getPlaintext()); // encryptMe // update key config and allow deletion $keyConfigExample = new UpdateKeyConfigRequest('exampleKeyName'); @@ -69,7 +63,7 @@ // list keys $listKeyResponse = $transitApi->listKeys(); - var_dump($listKeyResponse->getKeys()); + var_dump($listKeyResponse->getKeys()); // [] } catch (VaultResponseException $exception) { var_dump($exception->getMessage()); From 189dee9642085444ec7c128cf780c399844f108a Mon Sep 17 00:00:00 2001 From: Marco Rieger Date: Wed, 21 May 2025 15:40:47 +0200 Subject: [PATCH 4/4] cleanup package --- composer.json | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index bb280bf..d0a99bb 100644 --- a/composer.json +++ b/composer.json @@ -7,17 +7,13 @@ "require": { "ext-json": "*", "guzzlehttp/psr7": "^2.7.1", - "php": ">=8.3", - "psr/http-client": "^1.0.3" + "php": ">=8.3" }, "suggest": { - "php-http/curl-client": "CURL Client Adapter", - "tuupola/http-factory": "HTTP Factory" + "guzzlehttp/guzzle": "HTTP Client Adapter" }, "require-dev": { "friendsofphp/php-cs-fixer": "^v3.75.0", - "symfony/http-client": "^v7.2.4", - "nyholm/psr7": "^1.8.2", "php-http/mock-client": "^1.6.1", "phpunit/phpunit": "^12.1.5", "vimeo/psalm": "^6.10.3"