diff --git a/lib/openid_connect_authenticator.rb b/lib/openid_connect_authenticator.rb index 185c630..f86c35e 100644 --- a/lib/openid_connect_authenticator.rb +++ b/lib/openid_connect_authenticator.rb @@ -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 diff --git a/lib/openid_connect_faraday_formatter.rb b/lib/openid_connect_faraday_formatter.rb new file mode 100644 index 0000000..343a21b --- /dev/null +++ b/lib/openid_connect_faraday_formatter.rb @@ -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 diff --git a/plugin.rb b/plugin.rb index 07719f4..cd95021 100644 --- a/plugin.rb +++ b/plugin.rb @@ -6,6 +6,7 @@ # authors: David Taylor # url: https://github.com/discourse/discourse-openid-connect +require_relative "lib/openid_connect_faraday_formatter" require_relative "lib/omniauth_open_id_connect" require_relative "lib/openid_connect_authenticator"