Skip to content

Commit faa385a

Browse files
committed
Proxy.
1 parent cd4fa45 commit faa385a

File tree

2 files changed

+38
-39
lines changed

2 files changed

+38
-39
lines changed

lib/jira/oauth2_client.rb

+7-13
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,15 @@ class Oauth2Client < RequestClient
107107
OAUTH2_CLIENT_OPTIONS_KEYS =
108108
%i[auth_scheme authorize_url redirect_uri token_url max_redirects site
109109
use_ssl ssl_verify_mode ssl_version]
110-
# @private
110+
111111
# @private
112112
DEFAULT_OAUTH2_CLIENT_OPTIONS = {
113113
use_ssl: true,
114114
auth_scheme: 'request_body',
115115
authorize_url: '/rest/oauth2/latest/authorize',
116116
token_url: '/rest/oauth2/latest/token',
117117
}.freeze
118+
118119
attr_reader :prior_grant_type, :access_token
119120
# attr_reader :options
120121
attr_reader :oauth2_client_options, :client_id, :client_secret, :csrf_state
@@ -131,15 +132,15 @@ class Oauth2Client < RequestClient
131132
# @option options [String] :proxy_user Proxy user
132133
# @option options [String] :proxy_password Proxy Password
133134
def initialize(options = {})
134-
@options = init_oauth2_options(options)
135+
# @options = init_oauth2_options(options)
136+
init_oauth2_options(options)
135137
if options.has_key?(:access_token_options)
136138
@access_token = access_token_from_options(options[:access_token_options])
137139
end
138140
end
139141

140142
# @private
141143
private def init_oauth2_options(options)
142-
# byebug
143144
@client_id = options[:client_id]
144145
@client_secret = options[:client_secret]
145146

@@ -159,9 +160,9 @@ def initialize(options = {})
159160
@oauth2_client_options[:connection_opts][:ssl][:client_key] = options[:ssl_client_key] if options[:ssl_client_key]
160161
end
161162

162-
proxy_uri = oauth2_client_options.delete(:proxy_uri)
163-
proxy_user = oauth2_client_options.delete(:proxy_user)
164-
proxy_password = oauth2_client_options.delete(:proxy_password)
163+
proxy_uri = options[:proxy_uri]
164+
proxy_user = options[:proxy_user]
165+
proxy_password = options[:proxy_password]
165166
if proxy_uri
166167
@oauth2_client_options[:connection_opts][:proxy] ||= {}
167168
proxy_opts = @oauth2_client_options[:connection_opts][:proxy]
@@ -173,13 +174,6 @@ def initialize(options = {})
173174
@oauth2_client_options
174175
end
175176

176-
# @private
177-
# private def init_oauth2_client(oauth2_client_options)
178-
# OAuth2::Client.new(client_id,
179-
# client_secret,
180-
# oauth2_client_options)
181-
# end
182-
183177
def oauth2_client
184178
@oauth2_client ||=
185179
OAuth2::Client.new(client_id,

spec/jira/oauth2_client_spec.rb

+31-26
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,12 @@ def query_params_to_h(uri)
6969
describe '.new' do
7070
context 'setting options' do
7171
subject(:request_client) do
72-
# JIRA::Oauth2Client.new(client_id: client_id, client_secret: client_secret, site: site,
73-
# oauth2_client_options: { site: auth_site })
7472
JIRA::Oauth2Client.new(full_options)
7573
end
7674

7775
it 'sets oauth2 client options' do
78-
# expect(request_client.options[:site]).to eq(site)
76+
expect(request_client.class).to eq(JIRA::Oauth2Client)
77+
expect(request_client.oauth2_client.class).to eq(OAuth2::Client)
7978
expect(request_client.client_id).to eq(client_id)
8079
expect(request_client.client_secret).to eq(client_secret)
8180
expect(request_client.oauth2_client_options[:site]).to eq(site)
@@ -91,6 +90,9 @@ def query_params_to_h(uri)
9190
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_cert)).to eq(client_cert)
9291
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_key)).to eq(client_key)
9392
expect(request_client.oauth2_client_options.dig(:connection_opts, :headers)).to eq(headers)
93+
expect(request_client.oauth2_client.site).to eq(site)
94+
expect(request_client.oauth2_client.id).to eq(client_id)
95+
expect(request_client.oauth2_client.secret).to eq(client_secret)
9496
# authorize_url: 'oauth/authorize',
9597
# redirect_uri: ?
9698
# authorize_url: ?
@@ -128,12 +130,12 @@ def query_params_to_h(uri)
128130

129131
context 'using default options' do
130132
subject(:request_client) do
131-
# JIRA::Oauth2Client.new(client_id: client_id, client_secret: client_secret, site: site,
132-
# oauth2_client_options: { site: auth_site })
133133
JIRA::Oauth2Client.new(minimum_options)
134134
end
135135

136136
it 'uses default oauth2 client options' do
137+
expect(request_client.class).to eq(JIRA::Oauth2Client)
138+
expect(request_client.oauth2_client.class).to eq(OAuth2::Client)
137139
expect(request_client.client_id).to eq(client_id)
138140
expect(request_client.client_secret).to eq(client_secret)
139141
expect(request_client.oauth2_client_options[:site]).to eq(site)
@@ -148,41 +150,44 @@ def query_params_to_h(uri)
148150
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_cert)).to be_nil
149151
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_key)).to be_nil
150152
expect(request_client.oauth2_client_options.dig(:connection_opts, :headers)).to be_nil
151-
end
152-
end
153-
154-
context 'initialize oauth2 request client' do
155-
it 'creates a Oauth2::Client on initialize' do
156-
expect(request_client.oauth2_client.class).to eq(OAuth2::Client)
157-
expect(request_client.oauth2_client.site).to eq(auth_site)
153+
expect(request_client.oauth2_client.site).to eq(site)
158154
expect(request_client.oauth2_client.id).to eq(client_id)
159155
expect(request_client.oauth2_client.secret).to eq(client_secret)
160-
expect(request_client.oauth2_client.options[:auth_scheme]).to eq(JIRA::Oauth2Client::DEFAULT_OAUTH2_CLIENT_OPTIONS[:auth_scheme])
161-
expect(request_client.oauth2_client.options[:authorize_url]).to eq(JIRA::Oauth2Client::DEFAULT_OAUTH2_CLIENT_OPTIONS[:authorize_url])
162156
end
163157
end
164158

165159
context 'using a proxy' do
166-
let(:proxy_site) { 'https://auth_server' }
160+
let(:proxy_site) { 'https://proxy_server' }
167161
let(:proxy_user) { 'ironman' }
168162
let(:proxy_password) { 'iamironman' }
169-
subject(:proxy_request_client) do
170-
JIRA::Oauth2Client.new(client_id: client_id, client_secret: client_secret, site: site,
171-
oauth2_client_options: { site: auth_site,
172-
proxy_uri: proxy_site,
173-
proxy_user: proxy_user,
174-
proxy_password: proxy_password })
163+
subject(:request_client) do
164+
JIRA::Oauth2Client.new(proxy_options)
175165
end
176166

177167
it 'creates a proxy configured Oauth2::Client on initialize' do
168+
expect(request_client.class).to eq(JIRA::Oauth2Client)
178169
expect(request_client.oauth2_client.class).to eq(OAuth2::Client)
179-
expect(request_client.oauth2_client.site).to eq(auth_site)
170+
expect(request_client.client_id).to eq(client_id)
171+
expect(request_client.client_secret).to eq(client_secret)
172+
expect(request_client.oauth2_client_options[:site]).to eq(site)
173+
expect(request_client.oauth2_client_options[:use_ssl]).to eq(ssl_flag)
174+
expect(request_client.oauth2_client_options[:auth_scheme]).to eq(auth_scheme)
175+
expect(request_client.oauth2_client_options[:authorize_url]).to eq(authorize_url)
176+
expect(request_client.oauth2_client_options[:redirect_uri]).to eq(redirect_uri)
177+
expect(request_client.oauth2_client_options[:token_url]).to eq(token_url)
178+
expect(request_client.oauth2_client_options[:max_redirects]).to eq(max_redirects)
179+
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :version)).to eq(ssl_version)
180+
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :verify)).to eq(ssl_verify)
181+
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :ca_path)).to eq(ca_path)
182+
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_cert)).to eq(client_cert)
183+
expect(request_client.oauth2_client_options.dig(:connection_opts, :ssl, :client_key)).to eq(client_key)
184+
expect(request_client.oauth2_client_options.dig(:connection_opts, :headers)).to eq(headers)
185+
expect(request_client.oauth2_client.site).to eq(site)
180186
expect(request_client.oauth2_client.id).to eq(client_id)
181187
expect(request_client.oauth2_client.secret).to eq(client_secret)
182-
# expect(request_client.oauth2_client.options[:token_url]).to eq(JIRA::Oauth2Client::DEFAULT_OPTIONS[:token_url])
183-
expect(proxy_request_client.oauth2_client.options.dig(:connection_opts, :proxy, :uri)).to eq(proxy_site)
184-
expect(proxy_request_client.oauth2_client.options.dig(:connection_opts, :proxy, :user)).to eq(proxy_user)
185-
expect(proxy_request_client.oauth2_client.options.dig(:connection_opts, :proxy, :password)).to eq(proxy_password)
188+
expect(request_client.oauth2_client.options.dig(:connection_opts, :proxy, :uri)).to eq(proxy_site)
189+
expect(request_client.oauth2_client.options.dig(:connection_opts, :proxy, :user)).to eq(proxy_user)
190+
expect(request_client.oauth2_client.options.dig(:connection_opts, :proxy, :password)).to eq(proxy_password)
186191
end
187192
end
188193

0 commit comments

Comments
 (0)