FEATURE: Add detailed OIDC request and response logs
This makes use of Faraday middleware to log precise details about all requests made by the OAuth2 gem. This should make it easier to debug configuration issues
This commit is contained in:
parent
9ada9528e8
commit
109ec1a275
|
@ -64,6 +64,17 @@ class OpenIDConnectAuthenticator < Auth::ManagedAuthenticator
|
|||
token_params: token_params,
|
||||
passthrough_authorize_options: SiteSetting.openid_connect_authorize_parameters.split("|")
|
||||
)
|
||||
|
||||
if SiteSetting.openid_connect_verbose_logging
|
||||
opts[:client_options][:connection_build] = lambda { |builder|
|
||||
builder.response :logger, Rails.logger, { bodies: true, formatter: OIDCFaradayFormatter }
|
||||
|
||||
# Default stack:
|
||||
builder.request :url_encoded # form-encode POST params
|
||||
builder.adapter Faraday.default_adapter # make requests with Net::HTTP
|
||||
}
|
||||
end
|
||||
|
||||
}
|
||||
end
|
||||
end
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
require 'faraday/logging/formatter'
|
||||
class OIDCFaradayFormatter < Faraday::Logging::Formatter
|
||||
def request(env)
|
||||
warn <<~LOG
|
||||
OIDC Debugging: request #{env.method.upcase} #{env.url.to_s}
|
||||
|
||||
Headers: #{env.request_headers}
|
||||
|
||||
Body: #{env[:body]}
|
||||
LOG
|
||||
end
|
||||
|
||||
def response(env)
|
||||
warn <<~LOG
|
||||
OIDC Debugging: response status #{env.status}
|
||||
|
||||
From #{env.method.upcase} #{env.url.to_s}
|
||||
|
||||
Headers: #{env.response_headers}
|
||||
|
||||
Body: #{env[:body]}
|
||||
LOG
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue