refactor(keycloak): set API endpoint while getting list of oauth providers
urljoin() just adds the base URL to the relative path, here our base URL has an extra route in the path which isn't added in. Signed-off-by: Akhil Narang <me@akhilnarang.dev>
This commit is contained in:
parent
42b01570ae
commit
71b869a975
2 changed files with 6 additions and 4 deletions
|
|
@ -88,8 +88,6 @@ class SocialLoginKey(Document):
|
|||
frappe.throw(
|
||||
_("Please enter Client Secret before social login is enabled"), exc=ClientSecretNotSetError
|
||||
)
|
||||
if self.social_login_provider == "Keycloak":
|
||||
self.api_endpoint = self.base_url + "/protocol/openid-connect/userinfo"
|
||||
|
||||
def set_icon(self):
|
||||
icon_map = {
|
||||
|
|
@ -219,10 +217,9 @@ class SocialLoginKey(Document):
|
|||
providers["Keycloak"] = {
|
||||
"provider_name": "Keycloak",
|
||||
"enable_social_login": 1,
|
||||
"base_url": "realms/master",
|
||||
"custom_base_url": 1,
|
||||
"redirect_url": "/api/method/frappe.integrations.oauth2_logins.login_via_keycloak/keycloak",
|
||||
"api_endpoint": "realms/masterl/protocol/openid-connect/userinfo",
|
||||
"api_endpoint": "/protocol/openid-connect/userinfo",
|
||||
"api_endpoint_args": None,
|
||||
"authorize_url": "/protocol/openid-connect/auth",
|
||||
"access_token_url": "/protocol/openid-connect/token",
|
||||
|
|
|
|||
|
|
@ -28,6 +28,11 @@ def get_oauth2_providers() -> dict[str, dict]:
|
|||
if provider.custom_base_url:
|
||||
authorize_url = provider.base_url + provider.authorize_url
|
||||
access_token_url = provider.base_url + provider.access_token_url
|
||||
|
||||
# Keycloak needs this, the base URL also has a route, that urljoin() ignores
|
||||
if provider.name == "keycloak":
|
||||
provider.api_endpoint = provider.base_url + provider.api_endpoint
|
||||
|
||||
out[provider.name] = {
|
||||
"flow_params": {
|
||||
"name": provider.name,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue