From 7249a0b18f19c1bafe70bab25041b1a9498fd86a Mon Sep 17 00:00:00 2001 From: bytexr <129063632+bytexr@users.noreply.github.com> Date: Mon, 27 Mar 2023 15:02:04 +0100 Subject: [PATCH] added new env variable for provider --- README.md | 5 +++- src/LaravelScoutOpenSearchServiceProvider.php | 23 +++++++------------ 2 files changed, 12 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 2272f18..8388247 100644 --- a/README.md +++ b/README.md @@ -23,12 +23,15 @@ return [ ... 'opensearch' => [ + // default - this provider will use basic authentication username and password + // aws - this provider will use AWS credentials to authenticate + "provider" => env('OPENSEARCH_PROVIDER', 'default'), "host" => env('OPENSEARCH_HOST', 'https://localhost:9200'), "username" => env('OPENSEARCH_USERNAME', 'admin'), "password" => env('OPENSEARCH_PASSWORD', 'admin'), "ssl_verification" => env("OPENSEARCH_SSL_VERIFICATION", true), - // Only necessary if project is using AWS OpenSearch + // Only necessary if project is using AWS provider "aws_access_key" => env('OPENSEARCH_AWS_ACCESS_KEY'), "aws_secret_key" => env('OPENSEARCH_AWS_SECRET_KEY'), "aws_region" => env('OPENSEARCH_AWS_REGION', 'eu-west-1'), diff --git a/src/LaravelScoutOpenSearchServiceProvider.php b/src/LaravelScoutOpenSearchServiceProvider.php index 0bc5ae6..86f34dd 100644 --- a/src/LaravelScoutOpenSearchServiceProvider.php +++ b/src/LaravelScoutOpenSearchServiceProvider.php @@ -21,28 +21,21 @@ public function boot(): void private function createOpenSearchClient(): \OpenSearch\Client { - if ( - (config('scout.opensearch.username') || config('scout.opensearch.password')) && - (config('scout.opensearch.aws_access_key') || config('scout.opensearch.aws_secret_key')) - ) { - throw new OnlyAWSOrBasicAuthCredentials('Your OpenSearch configuration should have onlu AWS or Basic Auth credentials and not both.'); - } - - if (config('scout.opensearch.username')) { + if (config('scout.opensearch.provider') == "aws") { return (new ClientBuilder()) ->setHosts([config('scout.opensearch.host')]) - ->setSSLVerification(config('scout.opensearch.ssl_verification', true)) - ->setBasicAuthentication(config('scout.opensearch.username'), config('scout.opensearch.password')) + ->setSigV4CredentialProvider([ + 'key' => config('scout.opensearch.aws_access_key'), + 'secret' => config('scout.opensearch.aws_secret_key'), + ]) + ->setSigV4Region(confiig('scout.opensearch.aws_region')) ->build(); } return (new ClientBuilder()) ->setHosts([config('scout.opensearch.host')]) - ->setSigV4CredentialProvider([ - 'key' => config('scout.opensearch.aws_access_key'), - 'secret' => config('scout.opensearch.aws_secret_key'), - ]) - ->setSigV4Region(confiig('scout.opensearch.aws_region')) + ->setSSLVerification(config('scout.opensearch.ssl_verification', true)) + ->setBasicAuthentication(config('scout.opensearch.username'), config('scout.opensearch.password')) ->build(); } }