FIX: do not attempt to fetch user JSON if URL is not set
It is a configuration error to set oauth2_fetch_user_details to true but leave oauth2_user_json_url empty. Before, this resulted in an unhandled exception in core. Now it is checked here.
This commit is contained in:
parent
05cefd5ecd
commit
31a3f39f72
|
@ -296,7 +296,7 @@ class ::OAuth2BasicAuthenticator < Auth::ManagedAuthenticator
|
||||||
#{auth["extra"].to_hash.to_yaml}
|
#{auth["extra"].to_hash.to_yaml}
|
||||||
LOG
|
LOG
|
||||||
|
|
||||||
if SiteSetting.oauth2_fetch_user_details?
|
if SiteSetting.oauth2_fetch_user_details? && SiteSetting.oauth2_user_json_url.present?
|
||||||
if fetched_user_details = fetch_user_details(auth["credentials"]["token"], auth["uid"])
|
if fetched_user_details = fetch_user_details(auth["credentials"]["token"], auth["uid"])
|
||||||
auth["uid"] = fetched_user_details[:user_id] if fetched_user_details[:user_id]
|
auth["uid"] = fetched_user_details[:user_id] if fetched_user_details[:user_id]
|
||||||
auth["info"]["nickname"] = fetched_user_details[:username] if fetched_user_details[
|
auth["info"]["nickname"] = fetched_user_details[:username] if fetched_user_details[
|
||||||
|
|
|
@ -4,6 +4,8 @@ require "rails_helper"
|
||||||
|
|
||||||
describe OAuth2BasicAuthenticator do
|
describe OAuth2BasicAuthenticator do
|
||||||
describe "after_authenticate" do
|
describe "after_authenticate" do
|
||||||
|
before { SiteSetting.oauth2_user_json_url = "https://provider.com/user" }
|
||||||
|
|
||||||
let(:user) { Fabricate(:user) }
|
let(:user) { Fabricate(:user) }
|
||||||
let(:authenticator) { OAuth2BasicAuthenticator.new }
|
let(:authenticator) { OAuth2BasicAuthenticator.new }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue