From e29ca2a9f302d0dce246eda23c032fbe2f64cc34 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 20 Dec 2022 12:20:25 -0500 Subject: [PATCH 1/6] - fixes async execution in ruby Signed-off-by: Vincent Biret --- .../ruby/microsoft_kiota_abstractions/Gemfile | 2 - .../authentication/access_token_provider.rb | 1 - .../anonymous_authentication_provider.rb | 3 -- ...se_bearer_token_authentication_provider.rb | 9 ++--- .../microsoft_kiota_abstractions/version.rb | 2 +- .../oauth_access_token_provider.rb | 30 +++++++-------- .../net_http_request_adapter.rb | 37 +++++++++---------- .../spec/authentication_provider.rb | 1 - 8 files changed, 38 insertions(+), 47 deletions(-) diff --git a/abstractions/ruby/microsoft_kiota_abstractions/Gemfile b/abstractions/ruby/microsoft_kiota_abstractions/Gemfile index d35e6d7892..afd0aa90e0 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/Gemfile +++ b/abstractions/ruby/microsoft_kiota_abstractions/Gemfile @@ -11,8 +11,6 @@ gem 'rspec', '~> 3.0' gem 'rubocop', require: false -gem 'concurrent-ruby', '~> 1.1', '>= 1.1.9' - gem 'addressable', '~> 2.7', '>= 2.7.0' gem 'iso8601', '~> 0.13.0' diff --git a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb index 462dc6f234..ad3df83fb2 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb +++ b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/access_token_provider.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'concurrent' require_relative 'allowed_hosts_validator' module MicrosoftKiotaAbstractions diff --git a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb index 287b59d161..17824ceaf7 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb +++ b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/anonymous_authentication_provider.rb @@ -1,9 +1,6 @@ -require 'concurrent' - module MicrosoftKiotaAbstractions class AnonymousAuthenticationProvider include MicrosoftKiotaAbstractions::AuthenticationProvider - include Concurrent::Async def authenticate_request(request) end end diff --git a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb index 866812a928..148c5b1c74 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb +++ b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/authentication/base_bearer_token_authentication_provider.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'concurrent' require_relative './authentication_provider' require_relative './access_token_provider' @@ -8,7 +7,6 @@ module MicrosoftKiotaAbstractions # Provides a base class for implementing AuthenticationProvider for Bearer token scheme class BaseBearerTokenAuthenticationProvider include MicrosoftKiotaAbstractions::AuthenticationProvider - include Concurrent::Async def initialize(access_token_provider) raise StandardError, 'access_token_provider parameter cannot be nil' if access_token_provider.nil? @@ -17,13 +15,14 @@ def initialize(access_token_provider) AUTHORIZATION_HEADER_KEY = 'Authorization' def authenticate_request(request, additional_properties = {}) - raise StandardError, 'Request cannot be null' if request.nil? return if request.headers.key?(AUTHORIZATION_HEADER_KEY) - token = @access_token_provider.get_authorization_token(request.uri, additional_properties) + Fiber.new do + token = @access_token_provider.get_authorization_token(request.uri, additional_properties).resume - request.headers[AUTHORIZATION_HEADER_KEY] = "Bearer #{token}" unless token.nil? + request.headers[AUTHORIZATION_HEADER_KEY] = "Bearer #{token}" unless token.nil? + end end end end diff --git a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/version.rb b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/version.rb index 165a08684e..303b999607 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/version.rb +++ b/abstractions/ruby/microsoft_kiota_abstractions/lib/microsoft_kiota_abstractions/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MicrosoftKiotaAbstractions - VERSION = "0.3.1" + VERSION = "0.4.0" end diff --git a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb index a2232d7aa5..e99a8d85bc 100644 --- a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb +++ b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true -require 'concurrent' require 'microsoft_kiota_abstractions' require 'oauth2' require_relative 'extensions/oauth2_ext' @@ -13,7 +12,6 @@ module MicrosoftKiotaAuthenticationOAuth # Access Token Provider class implementation class OAuthAccessTokenProvider - include Concurrent::Async # This is the initializer for OAuthAccessTokenProvider. # :params # token_request_context: a instance of one of our token request context or a custom implementation @@ -53,23 +51,25 @@ def get_authorization_token(uri, additional_properties = {}) raise StandardError, 'Only https is supported' if parsed_url.scheme != 'https' - if @cached_token - token = OAuth2::AccessToken.from_hash(@token_request_context.oauth_provider, @cached_token) - return token.token if !token.nil? && !token.expired? + Fiber.new do + if @cached_token + token = OAuth2::AccessToken.from_hash(@token_request_context.oauth_provider, @cached_token) + return token.token if !token.nil? && !token.expired? - if token.expired? - token = token.refresh! - @cached_token = token.to_hash - return token.token + if token.expired? + token = token.refresh! + @cached_token = token.to_hash + return token.token + end end - end - token = nil - token = @token_request_context.get_token + token = nil + token = @token_request_context.get_token - @cached_token = token.to_hash unless token.nil? - token = token.token unless token.nil? - token + @cached_token = token.to_hash unless token.nil? + token = token.token unless token.nil? + token + end end attr_reader :scopes, :host_validator diff --git a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/net_http_request_adapter.rb b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/net_http_request_adapter.rb index 4d5d0943ac..338eb498dc 100644 --- a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/net_http_request_adapter.rb +++ b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/net_http_request_adapter.rb @@ -1,12 +1,10 @@ require 'microsoft_kiota_abstractions' require 'net/https' require 'net/http' -require 'concurrent' module MicrosoftKiotaNethttplibrary class NetHttpRequestAdapter include MicrosoftKiotaAbstractions::RequestAdapter - include Concurrent::Async attr_accessor :authentication_provider, :content_type_header_key, :parse_node_factory, :serialization_writer_factory, :client @@ -46,27 +44,28 @@ def send_async(request_info, type, response_handler) raise StandardError, 'requestInfo cannot be null' end - request = self.get_request_from_request_info(request_info) - uri = request_info.uri - @authentication_provider.await.authenticate_request(request_info) + Fiber.new do + @authentication_provider.authenticate_request(request_info).resume + request = self.get_request_from_request_info(request_info) + uri = request_info.uri - http = @client.new(uri.host, uri.port) - http.use_ssl = true - http.verify_mode = OpenSSL::SSL::VERIFY_PEER - request.headers = request_info.headers - response = http.request(request) + http = @client.new(uri.host, uri.port) + http.use_ssl = true + http.verify_mode = OpenSSL::SSL::VERIFY_PEER + response = http.request(request) - if response_handler - return response_handler.await.handle_response_async(response); - else - payload = response.body - response_content_type = self.get_response_content_type(response); + if response_handler + response_handler.handle_response_async(response).resume; + else + payload = response.body + response_content_type = self.get_response_content_type(response); - unless response_content_type - raise StandardError, 'no response content type found for deserialization' + unless response_content_type + raise StandardError, 'no response content type found for deserialization' + end + root_node = @parse_node_factory.get_parse_node(response_content_type, payload) + root_node.get_object_value(type) end - root_node = @parse_node_factory.get_parse_node(response_content_type, payload) - root_node.get_object_value(type) end end diff --git a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/spec/authentication_provider.rb b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/spec/authentication_provider.rb index ac6cedb0b0..6ca02c5488 100644 --- a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/spec/authentication_provider.rb +++ b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/spec/authentication_provider.rb @@ -1,4 +1,3 @@ class AuthenticationProvider include MicrosoftKiotaAbstractions::AuthenticationProvider - include Concurrent::Async end \ No newline at end of file From 3c2a35e4ed4126a638f674b798a80a733e75f04a Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 20 Dec 2022 12:23:50 -0500 Subject: [PATCH 2/6] - bumps ruby implementations versions Signed-off-by: Vincent Biret --- .../ruby/oauth/microsoft_kiota_authentication_oauth/Gemfile | 4 +--- .../lib/microsoft_kiota_authentication_oauth/version.rb | 2 +- http/ruby/nethttp/microsoft_kiota_nethttplibrary/Gemfile | 4 +--- .../lib/microsoft_kiota_nethttplibrary/version.rb | 2 +- serialization/ruby/json/microsoft_kiota_serialization/Gemfile | 2 +- .../lib/microsoft_kiota_serialization/version.rb | 2 +- 6 files changed, 6 insertions(+), 10 deletions(-) diff --git a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/Gemfile b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/Gemfile index 59babf56df..dddc79ff87 100644 --- a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/Gemfile +++ b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/Gemfile @@ -8,7 +8,7 @@ gemspec # git_source(:github) { |repo_name| "https://rubygems.pkg.github.com/microsoft" } source "https://rubygems.pkg.github.com/microsoft" do - gem "microsoft_kiota_abstractions", "0.2.0" + gem "microsoft_kiota_abstractions", '0.4.0' end gem 'rake', '~> 13.0' @@ -17,8 +17,6 @@ gem 'rspec', '~> 3.0' gem 'rubocop', require: false -gem 'concurrent-ruby', '~> 1.1', '>= 1.1.9' - gem 'addressable', '~> 2.7', '>= 2.7.0' gem "oauth2", "~> 2.0" diff --git a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/version.rb b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/version.rb index 1b00373f36..6df5ef48ff 100644 --- a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/version.rb +++ b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MicrosoftKiotaAuthenticationOAuth - VERSION = "0.2.0" + VERSION = "0.3.0" end diff --git a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/Gemfile b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/Gemfile index 5e2e23fa35..0003fc6acc 100644 --- a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/Gemfile +++ b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/Gemfile @@ -7,7 +7,7 @@ gemspec git_source(:github) { |repo_name| 'https://rubygems.pkg.github.com/microsoft' } source 'https://rubygems.pkg.github.com/microsoft' do - gem 'microsoft_kiota_abstractions', '0.3.1' + gem 'microsoft_kiota_abstractions', '0.4.0' end gem 'rake', '~> 13.0' @@ -15,5 +15,3 @@ gem 'rake', '~> 13.0' gem 'rspec', '~> 3.0' gem 'rubocop', require: false - -gem 'concurrent-ruby', '~> 1.1', '>= 1.1.9' diff --git a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/version.rb b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/version.rb index 33468cc42c..8ca6a692bd 100644 --- a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/version.rb +++ b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/lib/microsoft_kiota_nethttplibrary/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MicrosoftKiotaNethttplibrary - VERSION = '0.2.1' + VERSION = '0.3.0' end diff --git a/serialization/ruby/json/microsoft_kiota_serialization/Gemfile b/serialization/ruby/json/microsoft_kiota_serialization/Gemfile index 9db614504e..b540f10094 100644 --- a/serialization/ruby/json/microsoft_kiota_serialization/Gemfile +++ b/serialization/ruby/json/microsoft_kiota_serialization/Gemfile @@ -7,7 +7,7 @@ gemspec git_source(:github) { |repo_name| "https://rubygems.pkg.github.com/microsoft" } source "https://rubygems.pkg.github.com/microsoft" do - gem "microsoft_kiota_abstractions", "0.2.0" + gem "microsoft_kiota_abstractions", '0.4.0' end gem 'rake', '~> 13.0' diff --git a/serialization/ruby/json/microsoft_kiota_serialization/lib/microsoft_kiota_serialization/version.rb b/serialization/ruby/json/microsoft_kiota_serialization/lib/microsoft_kiota_serialization/version.rb index 189e81dbe4..46d3922c29 100644 --- a/serialization/ruby/json/microsoft_kiota_serialization/lib/microsoft_kiota_serialization/version.rb +++ b/serialization/ruby/json/microsoft_kiota_serialization/lib/microsoft_kiota_serialization/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module MicrosoftKiotaSerialization - VERSION = "0.3.0" + VERSION = "0.4.0" end From 1e22e9ac60cc6f4ec17111162d7c1bbbb2b17c82 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 20 Dec 2022 12:35:09 -0500 Subject: [PATCH 3/6] - adds a changelog entry for async execution fix in ruby Signed-off-by: Vincent Biret --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c525f271f..d9fa5d84f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Fixed a bug in Ruby where the request adapter URL would be overwritten by the client defaults. [#1647](https://github.com/microsoft/kiota/issues/1647) +- Replaced concurrent-ruby by Fibers in Ruby libraries to implement proper asynchronous execution of requests. ## [0.9.0] - 2022-12-19 From 9030624a4003ed27e125807958ddd1106c66f333 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 20 Dec 2022 15:50:40 -0500 Subject: [PATCH 4/6] - removes dependency on concurrent-async in gemspec files Signed-off-by: Vincent Biret --- .../microsoft_kiota_abstractions.gemspec | 3 +-- .../microsoft_kiota_authentication_oauth.gemspec | 3 +-- .../microsoft_kiota_serialization.gemspec | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/abstractions/ruby/microsoft_kiota_abstractions/microsoft_kiota_abstractions.gemspec b/abstractions/ruby/microsoft_kiota_abstractions/microsoft_kiota_abstractions.gemspec index a8afdb05ae..1db84e1e23 100644 --- a/abstractions/ruby/microsoft_kiota_abstractions/microsoft_kiota_abstractions.gemspec +++ b/abstractions/ruby/microsoft_kiota_abstractions/microsoft_kiota_abstractions.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| 'source_code_uri' => 'https://github.com/microsoft/kiota', 'github_repo' => 'ssh://github.com/microsoft/kiota' } - spec.required_ruby_version = '>= 2.4.0' + spec.required_ruby_version = '>= 2.7.0' # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. @@ -28,7 +28,6 @@ Gem::Specification.new do |spec| spec.bindir = 'bin' spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - spec.add_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.9' spec.add_dependency 'addressable', '~> 2.7', '>= 2.7.0' spec.add_dependency 'iso8601', '~> 0.13.0' end diff --git a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/microsoft_kiota_authentication_oauth.gemspec b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/microsoft_kiota_authentication_oauth.gemspec index da629f8cd4..ac9205ce28 100644 --- a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/microsoft_kiota_authentication_oauth.gemspec +++ b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/microsoft_kiota_authentication_oauth.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| 'source_code_uri' => 'https://github.com/microsoft/kiota', 'github_repo' => 'ssh://github.com/microsoft/kiota' } - spec.required_ruby_version = ">= 2.4.0" + spec.required_ruby_version = ">= 2.7.0" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. @@ -30,7 +30,6 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - spec.add_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.9' spec.add_dependency 'microsoft_kiota_abstractions' spec.add_dependency 'oauth2', '~> 2.0' end diff --git a/serialization/ruby/json/microsoft_kiota_serialization/microsoft_kiota_serialization.gemspec b/serialization/ruby/json/microsoft_kiota_serialization/microsoft_kiota_serialization.gemspec index f6e761ad5f..9b090ca98f 100644 --- a/serialization/ruby/json/microsoft_kiota_serialization/microsoft_kiota_serialization.gemspec +++ b/serialization/ruby/json/microsoft_kiota_serialization/microsoft_kiota_serialization.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| 'source_code_uri' => 'https://github.com/microsoft/kiota', 'github_repo' => 'ssh://github.com/microsoft/kiota' } - spec.required_ruby_version = ">= 2.4.0" + spec.required_ruby_version = ">= 2.7.0" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. From e0c6ecf11573e92b9b0b314b8e6580653d6ca968 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 20 Dec 2022 15:51:51 -0500 Subject: [PATCH 5/6] - removes dependency on concurrent-ruby for ruby http --- .../microsoft_kiota_nethttplibrary.gemspec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/microsoft_kiota_nethttplibrary.gemspec b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/microsoft_kiota_nethttplibrary.gemspec index 2514747175..dfbabc76e4 100644 --- a/http/ruby/nethttp/microsoft_kiota_nethttplibrary/microsoft_kiota_nethttplibrary.gemspec +++ b/http/ruby/nethttp/microsoft_kiota_nethttplibrary/microsoft_kiota_nethttplibrary.gemspec @@ -18,7 +18,7 @@ Gem::Specification.new do |spec| 'source_code_uri' => 'https://github.com/microsoft/kiota', 'github_repo' => 'ssh://github.com/microsoft/kiota' } - spec.required_ruby_version = ">= 2.4.0" + spec.required_ruby_version = ">= 2.7.0" # Specify which files should be added to the gem when it is released. # The `git ls-files -z` loads the files in the RubyGem that have been added into git. @@ -28,6 +28,4 @@ Gem::Specification.new do |spec| spec.bindir = 'bin' spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) } spec.require_paths = ['lib'] - - spec.add_dependency 'concurrent-ruby', '~> 1.1', '>= 1.1.9' end From f199903fcd8472117ad6b22d200302f3d1edadb7 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Wed, 28 Dec 2022 15:23:29 -0500 Subject: [PATCH 6/6] - applies review suggestions --- .../oauth_access_token_provider.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb index e99a8d85bc..908b1a0cc8 100644 --- a/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb +++ b/authentication/ruby/oauth/microsoft_kiota_authentication_oauth/lib/microsoft_kiota_authentication_oauth/oauth_access_token_provider.rb @@ -67,8 +67,7 @@ def get_authorization_token(uri, additional_properties = {}) token = @token_request_context.get_token @cached_token = token.to_hash unless token.nil? - token = token.token unless token.nil? - token + return token.token unless token.nil? end end