From 3fe4886093b2c624c43545553b2cfe5e2c411996 Mon Sep 17 00:00:00 2001 From: Richard Nemeth Date: Sun, 4 Jan 2026 21:11:58 +0100 Subject: [PATCH] fix: pass along the default connection manager configuration into uma --- src/keycloak/connection.py | 30 ++++++++++++++++++++++++++++++ src/keycloak/keycloak_uma.py | 20 ++++++++++++++++++-- 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/src/keycloak/connection.py b/src/keycloak/connection.py index 2b79b98..09db614 100644 --- a/src/keycloak/connection.py +++ b/src/keycloak/connection.py @@ -104,7 +104,9 @@ class ConnectionManager: self.headers = headers self.timeout = timeout self.verify = verify + self.proxies = proxies self.cert = cert + self.max_retries = max_retries self.pool_maxsize = pool_maxsize self._s = requests.Session() self._s.auth = lambda x: x # don't let requests add auth headers @@ -193,6 +195,20 @@ class ConnectionManager: def verify(self, value: bool | str) -> None: self._verify = value + @property + def proxies(self) -> dict | None: + """ + Return proxies in use for request to the server. + + :returns: Proxies + :rtype: dict | None + """ + return self._proxies + + @proxies.setter + def proxies(self, value: dict | None) -> None: + self._proxies = value + @property def cert(self) -> str | tuple | None: """ @@ -207,6 +223,20 @@ class ConnectionManager: def cert(self, value: str | tuple | None) -> None: self._cert = value + @property + def max_retries(self) -> int: + """ + Return maximum number of retries in use for requests to the server. + + :returns: Maximum number of retries + :rtype: int + """ + return self._max_retries + + @max_retries.setter + def max_retries(self, value: int) -> None: + self._max_retries = value + @property def pool_maxsize(self) -> int | None: """ diff --git a/src/keycloak/keycloak_uma.py b/src/keycloak/keycloak_uma.py index 6489856..6c822ed 100644 --- a/src/keycloak/keycloak_uma.py +++ b/src/keycloak/keycloak_uma.py @@ -461,7 +461,15 @@ class KeycloakUMA: ) raise AttributeError(msg) - connection = ConnectionManager(self.connection.base_url) + connection = ConnectionManager( + base_url=self.connection.base_url, + timeout=self.connection.timeout, + verify=self.connection.verify, + proxies=self.connection.proxies, + cert=self.connection.cert, + max_retries=self.connection.max_retries, + pool_maxsize=self.connection.pool_maxsize, + ) connection.add_param_headers("Authorization", "Bearer " + token) connection.add_param_headers("Content-Type", "application/x-www-form-urlencoded") data_raw = connection.raw_post(self.uma_well_known["token_endpoint"], data=payload) @@ -946,7 +954,15 @@ class KeycloakUMA: ) raise AttributeError(msg) - connection = ConnectionManager(self.connection.base_url) + connection = ConnectionManager( + base_url=self.connection.base_url, + timeout=self.connection.timeout, + verify=self.connection.verify, + proxies=self.connection.proxies, + cert=self.connection.cert, + max_retries=self.connection.max_retries, + pool_maxsize=self.connection.pool_maxsize, + ) connection.add_param_headers("Authorization", "Bearer " + token) connection.add_param_headers("Content-Type", "application/x-www-form-urlencoded") data_raw = await connection.a_raw_post(