Skip to content

Commit 2a34f22

Browse files
Merge pull request Peter-Slump#32 from gt-novelt/auto-refresh-admin-token
Auto refresh admin token
2 parents 97a2e0f + 38dffac commit 2a34f22

File tree

2 files changed

+253
-93
lines changed

2 files changed

+253
-93
lines changed

keycloak/connection.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
from urlparse import urljoin
2828

2929
import requests
30+
from requests.adapters import HTTPAdapter
3031

3132
from .exceptions import (KeycloakConnectionError)
3233

@@ -47,6 +48,17 @@ def __init__(self, base_url, headers={}, timeout=60, verify=True):
4748
self._verify = verify
4849
self._s = requests.Session()
4950

51+
# retry once to reset connection with Keycloak after tomcat's ConnectionTimeout
52+
# see https://github.com/marcospereirampj/python-keycloak/issues/36
53+
for protocol in ('https://', 'http://'):
54+
adapter = HTTPAdapter(max_retries=1)
55+
# adds POST to retry whitelist
56+
method_whitelist = set(adapter.max_retries.method_whitelist)
57+
method_whitelist.add('POST')
58+
adapter.max_retries.method_whitelist = frozenset(method_whitelist)
59+
60+
self._s.mount(protocol, adapter)
61+
5062
@property
5163
def base_url(self):
5264
""" Return base url in use for requests to the server. """

0 commit comments

Comments
 (0)