Merge pull request #3740 from tbetbetbe/grpc_ruby_tmp_fix_auth_interop

Fixes the broken ruby auth interop tests
pull/3741/head^2
Michael Lumish 9 years ago
commit a4218c87f9
  1. 22
      src/ruby/lib/grpc/generic/client_stub.rb
  2. 14
      src/ruby/spec/generic/client_stub_spec.rb

@ -176,8 +176,7 @@ module GRPC
deadline: deadline, deadline: deadline,
timeout: timeout, timeout: timeout,
parent: parent) parent: parent)
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) md = update_metadata(kw, method)
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri)
return c.request_response(req, **md) unless return_op return c.request_response(req, **md) unless return_op
# return the operation view of the active_call; define #execute as a # return the operation view of the active_call; define #execute as a
@ -244,8 +243,7 @@ module GRPC
deadline: deadline, deadline: deadline,
timeout: timeout, timeout: timeout,
parent: parent) parent: parent)
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) md = update_metadata(kw, method)
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri)
return c.client_streamer(requests, **md) unless return_op return c.client_streamer(requests, **md) unless return_op
# return the operation view of the active_call; define #execute as a # return the operation view of the active_call; define #execute as a
@ -322,8 +320,7 @@ module GRPC
deadline: deadline, deadline: deadline,
timeout: timeout, timeout: timeout,
parent: parent) parent: parent)
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) md = update_metadata(kw, method)
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri)
return c.server_streamer(req, **md, &blk) unless return_op return c.server_streamer(req, **md, &blk) unless return_op
# return the operation view of the active_call; define #execute # return the operation view of the active_call; define #execute
@ -439,8 +436,7 @@ module GRPC
deadline: deadline, deadline: deadline,
timeout: timeout, timeout: timeout,
parent: parent) parent: parent)
kw_with_jwt_uri = self.class.update_with_jwt_aud_uri(kw, @host, method) md = update_metadata(kw, method)
md = @update_metadata.nil? ? kw : @update_metadata.call(kw_with_jwt_uri)
return c.bidi_streamer(requests, **md, &blk) unless return_op return c.bidi_streamer(requests, **md, &blk) unless return_op
# return the operation view of the active_call; define #execute # return the operation view of the active_call; define #execute
@ -454,6 +450,16 @@ module GRPC
private private
def update_metadata(kw, method)
return kw if @update_metadata.nil?
just_jwt_uri = self.class.update_with_jwt_aud_uri({}, @host, method)
updated = @update_metadata.call(just_jwt_uri)
# keys should be lowercase
updated = Hash[updated.each_pair.map { |k, v| [k.downcase, v] }]
kw.merge(updated)
end
# Creates a new active stub # Creates a new active stub
# #
# @param method [string] the method being called. # @param method [string] the method being called.

@ -159,6 +159,20 @@ describe 'ClientStub' do
th.join th.join
end end
it 'should downcase the keys provided by the metadata updater' do
server_port = create_test_server
host = "localhost:#{server_port}"
th = run_request_response(@sent_msg, @resp, @pass,
k1: 'downcased-key-v1', k2: 'v2')
update_md = proc do |md|
md[:K1] = 'downcased-key-v1'
md
end
stub = GRPC::ClientStub.new(host, @cq, update_metadata: update_md)
expect(get_response(stub)).to eq(@resp)
th.join
end
it 'should send a request when configured using an override channel' do it 'should send a request when configured using an override channel' do
server_port = create_test_server server_port = create_test_server
alt_host = "localhost:#{server_port}" alt_host = "localhost:#{server_port}"

Loading…
Cancel
Save