Skip to content

Commit

Permalink
Allow Ws Addressing plugin to use a different URL address than the bi…
Browse files Browse the repository at this point in the history
…nding address.

Some SOAP services require you to connect to a gateway server but specify your actual url in the addressing part.

With this change you can override the binding address if you want to, but by default it will use the same address.
  • Loading branch information
eblis authored and mvantellingen committed Nov 3, 2022
1 parent cc986db commit bcf82d8
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion src/zeep/wsa.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
class WsAddressingPlugin(Plugin):
nsmap = {"wsa": ns.WSA}

def __init__(self, address_url: str = None):
self.address_url = address_url

def egress(self, envelope, http_headers, operation, binding_options):
"""Apply the ws-addressing headers to the given envelope."""

Expand All @@ -24,7 +27,7 @@ def egress(self, envelope, http_headers, operation, binding_options):
headers = [
WSA.Action(wsa_action),
WSA.MessageID("urn:uuid:" + str(uuid.uuid4())),
WSA.To(binding_options["address"]),
WSA.To(self.address_url or binding_options["address"]),
]
header.extend(headers)

Expand Down

0 comments on commit bcf82d8

Please sign in to comment.