From cddc95e5af95155af9f788f1bb80dc93932120ca Mon Sep 17 00:00:00 2001 From: Sebastian Wehrmann Date: Wed, 5 Dec 2018 13:08:46 +0100 Subject: [PATCH 1/2] Add implementation for auth_url --- keycloak/keycloak_openid.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/keycloak/keycloak_openid.py b/keycloak/keycloak_openid.py index ca4d9ae..335bb79 100644 --- a/keycloak/keycloak_openid.py +++ b/keycloak/keycloak_openid.py @@ -156,7 +156,9 @@ class KeycloakOpenID: :return: """ - return NotImplemented + return (self.well_know()['authorization_endpoint'] + + '?client_id=' + self.client_id + + '&response_type=code&redirect_uri=' + redirect_uri) def token(self, username="", password="", grant_type=["password"], code="", redirect_uri=""): """ From b425acbc04436abab239166d0b33458565ac4b0e Mon Sep 17 00:00:00 2001 From: Sebastian Wehrmann Date: Wed, 5 Dec 2018 15:56:29 +0100 Subject: [PATCH 2/2] Stick with existing code conventions --- keycloak/keycloak_openid.py | 8 +++++--- keycloak/urls_patterns.py | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/keycloak/keycloak_openid.py b/keycloak/keycloak_openid.py index 335bb79..cd5c2e4 100644 --- a/keycloak/keycloak_openid.py +++ b/keycloak/keycloak_openid.py @@ -30,6 +30,7 @@ from .connection import ConnectionManager from .exceptions import raise_error_from_response, KeycloakGetError, \ KeycloakRPTNotFound, KeycloakAuthorizationConfigError, KeycloakInvalidTokenError from .urls_patterns import ( + URL_AUTH, URL_TOKEN, URL_USERINFO, URL_WELL_KNOWN, @@ -156,9 +157,10 @@ class KeycloakOpenID: :return: """ - return (self.well_know()['authorization_endpoint'] + - '?client_id=' + self.client_id + - '&response_type=code&redirect_uri=' + redirect_uri) + params_path = {"authorization-endpoint": self.well_know()['authorization_endpoint'], + "client-id": self.client_id, + "redirect-uri": redirect_uri} + return URL_AUTH.format(**params_path) def token(self, username="", password="", grant_type=["password"], code="", redirect_uri=""): """ diff --git a/keycloak/urls_patterns.py b/keycloak/urls_patterns.py index 8746fda..cc9d587 100644 --- a/keycloak/urls_patterns.py +++ b/keycloak/urls_patterns.py @@ -29,6 +29,7 @@ URL_LOGOUT = "realms/{realm-name}/protocol/openid-connect/logout" URL_CERTS = "realms/{realm-name}/protocol/openid-connect/certs" URL_INTROSPECT = "realms/{realm-name}/protocol/openid-connect/token/introspect" URL_ENTITLEMENT = "realms/{realm-name}/authz/entitlement/{resource-server-id}" +URL_AUTH = "{authorization-endpoint}?client_id={client-id}&response_type=code&redirect_uri={redirect-uri}" # ADMIN URLS URL_ADMIN_USERS = "admin/realms/{realm-name}/users"