diff options
author | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-08-28 00:40:14 +0300 |
---|---|---|
committer | Alejandro Rodríguez <alejorro70@gmail.com> | 2018-09-20 23:35:11 +0300 |
commit | f00a5030612461ab6b239021c7fde9a350bebf49 (patch) | |
tree | 22818afa4a09abb7c4d8e7c5a40c20090544cf0f | |
parent | a491a6a3f0d7272692e7d069259e13cb448e8a6f (diff) |
Implement new credentials scheme on gitaly-ruby
-rw-r--r-- | changelogs/unreleased/gitaly-client-credentials.yml | 5 | ||||
-rw-r--r-- | ruby/lib/gitlab/git/gitaly_remote_repository.rb | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/changelogs/unreleased/gitaly-client-credentials.yml b/changelogs/unreleased/gitaly-client-credentials.yml new file mode 100644 index 000000000..d2736bf04 --- /dev/null +++ b/changelogs/unreleased/gitaly-client-credentials.yml @@ -0,0 +1,5 @@ +--- +title: Implement new credentials scheme on gitaly-ruby +merge_request: 873 +author: +type: changed diff --git a/ruby/lib/gitlab/git/gitaly_remote_repository.rb b/ruby/lib/gitlab/git/gitaly_remote_repository.rb index be15f5df7..ab0380ed7 100644 --- a/ruby/lib/gitlab/git/gitaly_remote_repository.rb +++ b/ruby/lib/gitlab/git/gitaly_remote_repository.rb @@ -56,20 +56,26 @@ module Gitlab end def token - gitaly_client.token(storage) + gitaly_client.token(storage).to_s end def request_kwargs @request_kwargs ||= begin - encoded_token = Base64.strict_encode64(token.to_s) metadata = { - 'authorization' => "Bearer #{encoded_token}", + 'authorization' => "Bearer #{auhtorization_token}", 'client_name' => CLIENT_NAME } { metadata: metadata } end end + + def auhtorization_token + issued_at = Time.now.to_i.to_s + hmac = OpenSSL::HMAC.hexdigest(OpenSSL::Digest::SHA256.new, token, issued_at) + + "v2.#{hmac}.#{issued_at}" + end end end end |