zuora_connect 2.0.5zh → 2.0.5zi

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 36a2f9d675095af97d07555d1aa875e5ba22b039262959a43d9a90966f45eaf3
4
- data.tar.gz: 492c05ace818806101c42c5b4534d21227d0db38a19c11f39ce1183163a58df9
3
+ metadata.gz: 1e225cbc2b46a9186017ebe18ab9d044ab6f64978caa2655a815c19629160240
4
+ data.tar.gz: d91c300ababad49297f2391fc2fad6264a3db233974dcede676c3b7f7f9c389c
5
5
  SHA512:
6
- metadata.gz: 593d8e422bf1edb7959bc8fd8878ad28e4219f5b42bbc73687e05540aca05995c6a1002cdec6272c037b8e904f3ff5b0e0b43290324b1e415225531c5ddc91b9
7
- data.tar.gz: 05671c2dd8641935619eee8de03ae5f62d721df3e8a9d113b29d889b8cfe407c9e9bbd27c85f4b54cc2c2acc9ba70f52d2b3f778009f56216dd28e231654ca5f
6
+ metadata.gz: 9585fb1c69ad98eb15eb4909ef1187ffff48ea6297bc0e686e54f9f4fa6d2a9a078f6fd8f617889b0ba3128786d46c9ab3f2dce5491ad15a28c6533c2e12d0a0
7
+ data.tar.gz: 321b5a5ef4e139dc813287e36260b015ee6e8293705085db59b3406049ab939b2f335a4a24b5ceefbc86712caaa331a7504456f796dcb08ec0b6c138ff4fc3a7
@@ -178,7 +178,7 @@ module ZuoraConnect
178
178
  retry
179
179
  rescue => ex
180
180
  if recoverable_session
181
- ZuoraConnect.logger.warn("REBUILDING - Using backup expired cache", self.default_ougai_items)
181
+ ZuoraConnect.logger.warn("REBUILDING - Using backup expired cache", ex, self.default_ougai_items)
182
182
  self.build_task(task_data: session["#{self.id}::task_data"], session: session)
183
183
  return self
184
184
  else
@@ -240,7 +240,7 @@ module ZuoraConnect
240
240
  rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS + ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex
241
241
  if (refresh_count += 1) < 3
242
242
  sleep(30)
243
- ZuoraConnect.logger.warn("REFRESH TASK - Connection Failure Retrying(#{refresh_count})", self.default_ougai_items)
243
+ ZuoraConnect.logger.debug("REFRESH TASK - Connection Failure Retrying(#{refresh_count})", ex, self.default_ougai_items)
244
244
  retry
245
245
  else
246
246
  ZuoraConnect.logger.fatal("REFRESH TASK - Connection Failed", ex, self.default_ougai_items)
@@ -248,7 +248,7 @@ module ZuoraConnect
248
248
  end
249
249
  rescue ZuoraConnect::Exceptions::ConnectCommunicationError => ex
250
250
  if (refresh_count += 1) < 3
251
- ZuoraConnect.logger.warn("REFRESH TASK - Communication Failure Retrying(#{refresh_count})", self.default_ougai_items)
251
+ ZuoraConnect.logger.debug("REFRESH TASK - Communication Failure Retrying(#{refresh_count})", ex, self.default_ougai_items)
252
252
  if ex.code == 401
253
253
  self.refresh_oauth
254
254
  end
@@ -525,7 +525,8 @@ module ZuoraConnect
525
525
  end
526
526
  rescue *(ZuoraAPI::Login::CONNECTION_EXCEPTIONS + ZuoraAPI::Login::CONNECTION_READ_EXCEPTIONS) => ex
527
527
  if (refresh_oauth_count += 1) < 3
528
- ZuoraConnect.logger.warn("REFRESH OAUTH - Connection Failure Retrying(#{refresh_oauth_count})", self.default_ougai_items)
528
+ sleep(5)
529
+ ZuoraConnect.logger.debug("REFRESH OAUTH - Connection Failure Retrying(#{refresh_oauth_count})", ex, self.default_ougai_items)
529
530
  retry
530
531
  else
531
532
  ZuoraConnect.logger.fatal("REFRESH OAUTH - Connection Failed", ex, self.default_ougai_items)
@@ -539,7 +540,7 @@ module ZuoraConnect
539
540
  return if !self.oauth_expired?
540
541
 
541
542
  if (refresh_oauth_count += 1) < 3
542
- ZuoraConnect.logger.warn("REFRESH OAUTH - Communication Failure Retrying(#{refresh_oauth_count})", self.default_ougai_items)
543
+ ZuoraConnect.logger.debug("REFRESH OAUTH - Communication Failure Retrying(#{refresh_oauth_count})", ex, self.default_ougai_items)
543
544
  retry
544
545
  else
545
546
  ZuoraConnect.logger.fatal("REFRESH OAUTH - Communication Failed #{ex.code}", ex, self.default_ougai_items)
@@ -88,35 +88,46 @@ module ZuoraConnect
88
88
  zuora_entity_id = request.headers['ZuoraCurrentEntity'] || cookies['ZuoraCurrentEntity']
89
89
 
90
90
  if zuora_entity_id.present?
91
+ zuora_tenant_id = cookies['Zuora-Tenant-Id']
92
+ zuora_user_id = cookies['Zuora-User-Id']
91
93
  zuora_host = request.headers["HTTP_X_FORWARDED_HOST"] || "apisandbox.zuora.com"
92
94
 
95
+ zuora_details = {'host' => zuora_host, 'user_id' => zuora_user_id, 'tenant_id' => zuora_tenant_id, 'entity_id' => zuora_entity_id}
96
+
97
+ #Do we need to refresh session identity
98
+ if request.headers["Zuora-Auth-Token"].present?
99
+ zuora_client = ZuoraAPI::Oauth.new(url: "https://#{zuora_host}", bearer_token: request.headers["Zuora-Auth-Token"], oauth_session_expires_at: Time.now + 5.minutes )
100
+ elsif cookies['ZSession'].present?
101
+ zuora_client = ZuoraAPI::Basic.new(url: "https://#{zuora_host}", session: cookies['ZSession'])
102
+ else
103
+ render "zuora_connect/static/error_handled", :locals => {
104
+ :title => "Missing Authorization Token",
105
+ :message => "Zuora 'Zuora-Auth-Token' header and 'ZSession' cookie not present."
106
+ }, :layout => false
107
+ return
108
+ end
109
+
93
110
  begin
94
- #Do we need to refresh session identity
95
- if request.headers["Zuora-Auth-Token"].present?
96
- zuora_client = ZuoraAPI::Oauth.new(url: "https://#{zuora_host}", bearer_token: request.headers["Zuora-Auth-Token"], oauth_session_expires_at: Time.now + 5.minutes )
97
- elsif cookies['ZSession'].present?
98
- zuora_client = ZuoraAPI::Basic.new(url: "https://#{zuora_host}", session: cookies['ZSession'])
99
- else
100
- render "zuora_connect/static/error_handled", :locals => {
101
- :title => "Missing Authorization Token",
102
- :message => "Zuora 'Zuora-Auth-Token' header and 'ZSession' cookie not present."
103
- }, :layout => false
104
- return
105
- end
106
111
  zuora_instance_id = params[:sidebar_launch].to_s.to_bool ? nil : (params[:app_instance_id] || session["appInstance"])
107
112
 
108
113
  #Identity blank or current entity different
109
- if (session["ZuoraCurrentIdentity"].blank? || (session["ZuoraCurrentEntity"] != zuora_entity_id) || (session["ZSession"] != cookies['ZSession']))
114
+ different_zsession = session["ZSession"] != cookies['ZSession']
115
+ missmatched_entity = session["ZuoraCurrentEntity"] != zuora_entity_id
116
+ missing_identity = session["ZuoraCurrentIdentity"].blank?
117
+
118
+ if (missing_identity || missmatched_entity || different_zsession)
119
+ zuora_details.merge!({'identity' => {'different_zsession' => different_zsession, 'missing_identity' => missing_identity, 'missmatched_entity' => missmatched_entity}})
110
120
  identity, response = zuora_client.rest_call(url: zuora_client.rest_endpoint("identity"))
111
121
  session["ZuoraCurrentIdentity"] = identity
112
122
  session["ZuoraCurrentEntity"] = identity['entityId']
113
123
  session["ZSession"] = cookies['ZSession']
114
124
  zuora_instance_id = nil
125
+ zuora_details["identity"]["entityId"] = identity['entityId']
115
126
 
116
127
  client_describe, response = zuora_client.rest_call(url: zuora_client.rest_endpoint("genesis/user/info").gsub('v1/', ''), session_type: zuora_client.class == ZuoraAPI::Oauth ? :bearer : :basic, headers: zuora_client.class == ZuoraAPI::Oauth ? {} : {'Authorization' => "ZSession-a3N2w #{zuora_client.get_session(prefix: false, auth_type: :basic)}"})
117
128
  session["ZuoraCurrentUserInfo"] = client_describe
118
129
 
119
- raise ZuoraConnect::Exceptions::Error.new("Header entity id, '#{zuora_entity_id}' does not match identity call entity id, '#{identity['entityId']}'.") if zuora_entity_id != identity['entityId']
130
+ raise ZuoraConnect::Exceptions::Error.new("Header entity id does not match identity call entity id.") if zuora_entity_id != identity['entityId']
120
131
  end
121
132
 
122
133
  #Find matching app instances.
@@ -261,12 +272,16 @@ module ZuoraConnect
261
272
  end
262
273
 
263
274
  rescue ZuoraAPI::Exceptions::ZuoraAPIAuthenticationTypeError => ex
275
+ output_xml, input_xml = zuora_client.soap_call(errors: [], z_session: false) do |xml|
276
+ xml['api'].getUserInfo
277
+ end
278
+ final_error = output_xml.xpath('//fns:FaultCode', 'fns' =>'http://fault.api.zuora.com/').text
264
279
  session.clear
265
- ZuoraConnect.logger.warn(ex)
280
+ ZuoraConnect.logger.warn(ex, zuora: zuora_details.merge({:error => final_error}))
266
281
  redirect_to "https://#{zuora_host}/apps/newlogin.do?retURL=#{request.fullpath}"
267
282
  return
268
283
  rescue => ex
269
- ZuoraConnect.logger.error(ex)
284
+ ZuoraConnect.logger.error(ex, zuora: zuora_details)
270
285
  render "zuora_connect/static/error_unhandled", :locals => {:exception => ex}, :layout => false
271
286
  return
272
287
  end
@@ -1,3 +1,3 @@
1
1
  module ZuoraConnect
2
- VERSION = "2.0.5zh"
2
+ VERSION = "2.0.5zi"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zuora_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5zh
4
+ version: 2.0.5zi
5
5
  platform: ruby
6
6
  authors:
7
7
  - Connect Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-06 00:00:00.000000000 Z
11
+ date: 2019-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: apartment