@@ -148,16 +148,18 @@ def fetch_datafile_config
148148 end
149149
150150 def request_config
151- @logger . log (
152- Logger ::DEBUG ,
153- "Fetching datafile from #{ @datafile_url } "
154- )
155- begin
156- headers = { }
157- headers [ 'Content-Type' ] = 'application/json'
158- headers [ 'If-Modified-Since' ] = @last_modified if @last_modified
159- headers [ 'Authorization' ] = "Bearer #{ @access_token } " unless @access_token . nil?
151+ @logger . log ( Logger ::DEBUG , "Fetching datafile from #{ @datafile_url } " )
152+ headers = { }
153+ headers [ 'Content-Type' ] = 'application/json'
154+ headers [ 'If-Modified-Since' ] = @last_modified if @last_modified
155+ headers [ 'Authorization' ] = "Bearer #{ @access_token } " unless @access_token . nil?
156+
157+ # Cleaning headers before logging to avoid exposing authorization token
158+ cleansed_headers = { }
159+ headers . each { |key , value | cleansed_headers [ key ] = key == 'Authorization' ? '********' : value }
160+ @logger . log ( Logger ::DEBUG , "Datafile request headers: #{ cleansed_headers } " )
160161
162+ begin
161163 response = Helpers ::HttpUtils . make_request (
162164 @datafile_url , :get , nil , headers , Helpers ::Constants ::CONFIG_MANAGER [ 'REQUEST_TIMEOUT' ]
163165 )
@@ -169,6 +171,9 @@ def request_config
169171 return nil
170172 end
171173
174+ response_code = response . code . to_i
175+ @logger . log ( Logger ::DEBUG , "Datafile response status code #{ response_code } " )
176+
172177 # Leave datafile and config unchanged if it has not been modified.
173178 if response . code == '304'
174179 @logger . log (
@@ -178,9 +183,14 @@ def request_config
178183 return
179184 end
180185
181- @last_modified = response [ Helpers ::Constants ::HTTP_HEADERS [ 'LAST_MODIFIED' ] ]
182-
183- config = DatafileProjectConfig . create ( response . body , @logger , @error_handler , @skip_json_validation ) if response . body
186+ if response_code >= 200 && response_code < 400
187+ @logger . log ( Logger ::DEBUG , 'Successfully fetched datafile, generating Project config' )
188+ config = DatafileProjectConfig . create ( response . body , @logger , @error_handler , @skip_json_validation )
189+ @last_modified = response [ Helpers ::Constants ::HTTP_HEADERS [ 'LAST_MODIFIED' ] ]
190+ @logger . log ( Logger ::DEBUG , "Saved last modified header value from response: #{ @last_modified } ." )
191+ else
192+ @logger . log ( Logger ::DEBUG , "Datafile fetch failed, status: #{ response . code } , message: #{ response . message } " )
193+ end
184194
185195 config
186196 end
0 commit comments