Commit 7ac8e894 authored by Ethan Urie's avatar Ethan Urie

Modify to also encrypt if it's production, to smooth the transition

parent 126db264
...@@ -21,7 +21,7 @@ module Gitlab ...@@ -21,7 +21,7 @@ module Gitlab
update: ::Spamcheck::Action::UPDATE update: ::Spamcheck::Action::UPDATE
}.freeze }.freeze
URL_SCHEME_REGEX = %r{^grpc://|^tls://} URL_SCHEME_REGEX = %r{^grpc://|^tls://}.freeze
def initialize def initialize
@endpoint_url = Gitlab::CurrentSettings.current_application_settings.spam_check_endpoint_url @endpoint_url = Gitlab::CurrentSettings.current_application_settings.spam_check_endpoint_url
...@@ -99,7 +99,7 @@ module Gitlab ...@@ -99,7 +99,7 @@ module Gitlab
end end
def client_creds(url) def client_creds(url)
if URI(url).scheme == 'tls' if URI(url).scheme == 'tls' || Rails.env.production?
GRPC::Core::ChannelCredentials.new(::Gitlab::X509::Certificate.ca_certs_bundle) GRPC::Core::ChannelCredentials.new(::Gitlab::X509::Certificate.ca_certs_bundle)
else else
:this_channel_is_insecure :this_channel_is_insecure
......
...@@ -33,11 +33,7 @@ RSpec.describe Gitlab::Spamcheck::Client do ...@@ -33,11 +33,7 @@ RSpec.describe Gitlab::Spamcheck::Client do
end end
describe 'url scheme' do describe 'url scheme' do
before do let(:stub) { double(:spamcheck_stub, check_for_spam_issue: response) }
allow_next_instance_of(::Spamcheck::SpamcheckService::Stub) do |instance|
allow(instance).to receive(:check_for_spam_issue).and_return(response)
end
end
context 'is tls ' do context 'is tls ' do
let(:endpoint) { 'tls://spamcheck.example.com'} let(:endpoint) { 'tls://spamcheck.example.com'}
...@@ -45,7 +41,7 @@ RSpec.describe Gitlab::Spamcheck::Client do ...@@ -45,7 +41,7 @@ RSpec.describe Gitlab::Spamcheck::Client do
it 'uses secure connection' do it 'uses secure connection' do
expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^tls://}, ''), expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^tls://}, ''),
instance_of(GRPC::Core::ChannelCredentials), instance_of(GRPC::Core::ChannelCredentials),
anything) anything).and_return(stub)
subject subject
end end
end end
...@@ -54,7 +50,37 @@ RSpec.describe Gitlab::Spamcheck::Client do ...@@ -54,7 +50,37 @@ RSpec.describe Gitlab::Spamcheck::Client do
it 'uses insecure connection' do it 'uses insecure connection' do
expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^grpc://}, ''), expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^grpc://}, ''),
:this_channel_is_insecure, :this_channel_is_insecure,
anything) anything).and_return(stub)
subject
end
end
end
describe "Rails environment" do
let(:stub) { double(:spamcheck_stub, check_for_spam_issue: response) }
context "production" do
before do
allow(Rails.env).to receive(:production?).and_return(true)
end
it 'uses secure connection' do
expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^grpc://}, ''),
instance_of(GRPC::Core::ChannelCredentials),
anything).and_return(stub)
subject
end
end
context "not production" do
before do
allow(Rails.env).to receive(:production?).and_return(false)
end
it 'uses insecure connection' do
expect(Spamcheck::SpamcheckService::Stub).to receive(:new).with(endpoint.sub(%r{^grpc://}, ''),
:this_channel_is_insecure,
anything).and_return(stub)
subject subject
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment