@@ -49,9 +49,13 @@ class ConnectionManager(object):
49
49
:type verify: Union[bool,str]
50
50
:param proxies: The proxies servers requests is sent by.
51
51
:type proxies: dict
52
+ :param cert: An SSL certificate used by the requested host to authenticate the client.
53
+ Either a path to an SSL certificate file, or two-tuple of
54
+ (certificate file, key file).
55
+ :type cert: Union[str,Tuple[str,str]]
52
56
"""
53
57
54
- def __init__ (self , base_url , headers = {}, timeout = 60 , verify = True , proxies = None ):
58
+ def __init__ (self , base_url , headers = {}, timeout = 60 , verify = True , proxies = None , cert = None ):
55
59
"""Init method.
56
60
57
61
:param base_url: The server URL.
@@ -65,11 +69,16 @@ def __init__(self, base_url, headers={}, timeout=60, verify=True, proxies=None):
65
69
:type verify: Union[bool,str]
66
70
:param proxies: The proxies servers requests is sent by.
67
71
:type proxies: dict
72
+ :param cert: An SSL certificate used by the requested host to authenticate the client.
73
+ Either a path to an SSL certificate file, or two-tuple of
74
+ (certificate file, key file).
75
+ :type cert: Union[str,Tuple[str,str]]
68
76
"""
69
77
self .base_url = base_url
70
78
self .headers = headers
71
79
self .timeout = timeout
72
80
self .verify = verify
81
+ self .cert = cert
73
82
self ._s = requests .Session ()
74
83
self ._s .auth = lambda x : x # don't let requests add auth headers
75
84
@@ -87,7 +96,7 @@ def __init__(self, base_url, headers={}, timeout=60, verify=True, proxies=None):
87
96
if proxies :
88
97
self ._s .proxies .update (proxies )
89
98
90
- self .async_s = httpx .AsyncClient (verify = verify , proxies = proxies )
99
+ self .async_s = httpx .AsyncClient (verify = verify , proxies = proxies , cert = cert )
91
100
self .async_s .auth = None # don't let requests add auth headers
92
101
self .async_s .transport = httpx .AsyncHTTPTransport (retries = 1 )
93
102
@@ -140,6 +149,19 @@ def verify(self):
140
149
def verify (self , value ):
141
150
self ._verify = value
142
151
152
+ @property
153
+ def cert (self ):
154
+ """Return client certificates in use for request to the server.
155
+
156
+ :returns: Client certificate
157
+ :rtype: Union[str,Tuple[str,str]]
158
+ """
159
+ return self ._cert
160
+
161
+ @cert .setter
162
+ def cert (self , value ):
163
+ self ._cert = value
164
+
143
165
@property
144
166
def headers (self ):
145
167
"""Return header request to the server.
@@ -213,6 +235,7 @@ def raw_get(self, path, **kwargs):
213
235
headers = self .headers ,
214
236
timeout = self .timeout ,
215
237
verify = self .verify ,
238
+ cert = self .cert ,
216
239
)
217
240
except Exception as e :
218
241
raise KeycloakConnectionError ("Can't connect to server (%s)" % e )
@@ -238,6 +261,7 @@ def raw_post(self, path, data, **kwargs):
238
261
headers = self .headers ,
239
262
timeout = self .timeout ,
240
263
verify = self .verify ,
264
+ cert = self .cert ,
241
265
)
242
266
except Exception as e :
243
267
raise KeycloakConnectionError ("Can't connect to server (%s)" % e )
@@ -263,6 +287,7 @@ def raw_put(self, path, data, **kwargs):
263
287
headers = self .headers ,
264
288
timeout = self .timeout ,
265
289
verify = self .verify ,
290
+ cert = self .cert ,
266
291
)
267
292
except Exception as e :
268
293
raise KeycloakConnectionError ("Can't connect to server (%s)" % e )
@@ -288,6 +313,7 @@ def raw_delete(self, path, data=None, **kwargs):
288
313
headers = self .headers ,
289
314
timeout = self .timeout ,
290
315
verify = self .verify ,
316
+ cert = self .cert ,
291
317
)
292
318
return r
293
319
except Exception as e :
0 commit comments