From cae2abcd34ba22d1a688b8944603d3b817e30e2d Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sat, 11 May 2024 20:19:20 -0400 Subject: [PATCH 1/3] deal with basic auth credentials --- app/assets/javascripts/controllers/detailedDoc.js | 8 +++++++- app/controllers/proxy_controller.rb | 9 +++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/controllers/detailedDoc.js b/app/assets/javascripts/controllers/detailedDoc.js index 8d2d07d24..0467d9119 100644 --- a/app/assets/javascripts/controllers/detailedDoc.js +++ b/app/assets/javascripts/controllers/detailedDoc.js @@ -14,10 +14,16 @@ angular.module('QuepidApp') $scope.linkToDoc = function() { let url = $scope.doc._url(); + + if (settingsSvc.applicableSettings().basicAuthCredential){ + var credentials = settingsSvc.applicableSettings().basicAuthCredential; + url = url.replace('://', '://' + credentials + '@'); + } + if (settingsSvc.applicableSettings().proxyRequests === true) { url = caseTryNavSvc.getQuepidProxyUrl() + url; } - + return url; }; diff --git a/app/controllers/proxy_controller.rb b/app/controllers/proxy_controller.rb index ad208a0d7..abb6a082b 100644 --- a/app/controllers/proxy_controller.rb +++ b/app/controllers/proxy_controller.rb @@ -26,6 +26,10 @@ def fetch uri = URI.parse(url_param) url_without_path = "#{uri.scheme}://#{uri.host}" url_without_path += ":#{uri.port}" unless uri.port.nil? + + + + connection = Faraday.new(url: url_without_path) do |faraday| # Configure the connection options, such as headers or middleware @@ -43,6 +47,11 @@ def fetch end faraday.headers['Content-Type'] = 'application/json' + has_credentials = !uri.userinfo.nil? + if has_credentials + username, password = uri.userinfo.split(':') + faraday.headers['Authorization'] = 'Basic ' + Base64.strict_encode64("#{username}:#{password}") + end faraday.adapter Faraday.default_adapter end From 61efee39b0b3166dd7b0281b6567ae9bd194ffa7 Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 12 May 2024 09:10:27 -0400 Subject: [PATCH 2/3] lint --- app/controllers/proxy_controller.rb | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/controllers/proxy_controller.rb b/app/controllers/proxy_controller.rb index abb6a082b..cbf5eb1b5 100644 --- a/app/controllers/proxy_controller.rb +++ b/app/controllers/proxy_controller.rb @@ -26,10 +26,6 @@ def fetch uri = URI.parse(url_param) url_without_path = "#{uri.scheme}://#{uri.host}" url_without_path += ":#{uri.port}" unless uri.port.nil? - - - - connection = Faraday.new(url: url_without_path) do |faraday| # Configure the connection options, such as headers or middleware @@ -50,7 +46,7 @@ def fetch has_credentials = !uri.userinfo.nil? if has_credentials username, password = uri.userinfo.split(':') - faraday.headers['Authorization'] = 'Basic ' + Base64.strict_encode64("#{username}:#{password}") + faraday.headers['Authorization'] = "Basic #{Base64.strict_encode64("#{username}:#{password}")}" end faraday.adapter Faraday.default_adapter end From 8708b6ef9a6b2ce39db1a6a6e43ca418042ec2db Mon Sep 17 00:00:00 2001 From: Eric Pugh Date: Sun, 12 May 2024 13:50:03 -0400 Subject: [PATCH 3/3] lint --- app/assets/javascripts/controllers/detailedDoc.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/controllers/detailedDoc.js b/app/assets/javascripts/controllers/detailedDoc.js index 0467d9119..4c5a42585 100644 --- a/app/assets/javascripts/controllers/detailedDoc.js +++ b/app/assets/javascripts/controllers/detailedDoc.js @@ -14,10 +14,10 @@ angular.module('QuepidApp') $scope.linkToDoc = function() { let url = $scope.doc._url(); - - if (settingsSvc.applicableSettings().basicAuthCredential){ - var credentials = settingsSvc.applicableSettings().basicAuthCredential; - url = url.replace('://', '://' + credentials + '@'); + let credentials = settingsSvc.applicableSettings().basicAuthCredential; + + if (credentials){ + url = url.replace('://', `://${credentials}@`); } if (settingsSvc.applicableSettings().proxyRequests === true) {