Skip to content

Commit 1a7aaa9

Browse files
oberstetfungs
andauthored
Httpheaders (crossbario#1638)
* feat: pass throught custom http headers as transport configuration * chore: simplify and add argument check for rawsocket mode * fix: is not None * fix: flake8 accepted formatting --------- Co-authored-by: Johannes Dröge <[email protected]>
1 parent 75f3758 commit 1a7aaa9

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

autobahn/wamp/component.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def _create_transport(index, transport, check_native_endpoint=None):
120120
valid_transport_keys = [
121121
'type', 'url', 'endpoint', 'serializer', 'serializers', 'options',
122122
'max_retries', 'max_retry_delay', 'initial_retry_delay',
123-
'retry_delay_growth', 'retry_delay_jitter', 'proxy',
123+
'retry_delay_growth', 'retry_delay_jitter', 'proxy', 'headers'
124124
]
125125
for k in transport.keys():
126126
if k not in valid_transport_keys:
@@ -161,6 +161,8 @@ def _create_transport(index, transport, check_native_endpoint=None):
161161
'options must be a dict, not {}'.format(type(options))
162162
)
163163

164+
headers = transport.get("headers")
165+
164166
if kind == 'websocket':
165167
for key in ['url']:
166168
if key not in transport:
@@ -227,6 +229,8 @@ def _create_transport(index, transport, check_native_endpoint=None):
227229
endpoint_config = transport['endpoint']
228230
if 'serializers' in transport:
229231
raise ValueError("'serializers' is only for websocket; use 'serializer'")
232+
if headers is not None:
233+
raise ValueError("'headers' not supported for rawsocket transport")
230234
# always a list; len == 1 for rawsocket
231235
if 'serializer' in transport:
232236
if not isinstance(transport['serializer'], (str, str)):
@@ -252,6 +256,7 @@ def _create_transport(index, transport, check_native_endpoint=None):
252256
serializers=serializer_config,
253257
proxy=proxy,
254258
options=options,
259+
headers=headers,
255260
**kw
256261
)
257262

@@ -268,7 +273,8 @@ def __init__(self, idx, kind, url, endpoint, serializers,
268273
retry_delay_growth=1.5,
269274
retry_delay_jitter=0.1,
270275
proxy=None,
271-
options=None):
276+
options=None,
277+
headers=None):
272278
"""
273279
"""
274280
if options is None:
@@ -279,6 +285,7 @@ def __init__(self, idx, kind, url, endpoint, serializers,
279285
self.url = url
280286
self.endpoint = endpoint
281287
self.options = options
288+
self.headers = headers
282289

283290
self.serializers = serializers
284291
if self.type == 'rawsocket' and len(serializers) != 1:

0 commit comments

Comments
 (0)