# Copyright 2017 Canonical Ltd. # Licensed under the LGPLv3, see LICENCE file for details. import macaroonbakery.bakery as bakery import macaroonbakery._utils as utils def discharge(ctx, content, key, locator, checker): '''Handles a discharge request as received by the /discharge endpoint. @param ctx The context passed to the checker {checkers.AuthContext} @param content URL and form parameters {dict} @param locator Locator used to add third party caveats returned by the checker {macaroonbakery.ThirdPartyLocator} @param checker {macaroonbakery.ThirdPartyCaveatChecker} Used to check third party caveats. @return The discharge macaroon {macaroonbakery.Macaroon} ''' id = content.get('id') if id is not None: id = id.encode('utf-8') else: id = content.get('id64') if id is not None: id = utils.b64decode(id) caveat = content.get('caveat64') if caveat is not None: caveat = utils.b64decode(caveat) return bakery.discharge( ctx, id=id, caveat=caveat, key=key, checker=checker, locator=locator, )
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
agent | Folder | 0755 |
|
|
__init__.py | File | 1.22 KB | 0644 |
|
_browser.py | File | 3.48 KB | 0644 |
|
_client.py | File | 15.13 KB | 0644 |
|
_discharge.py | File | 1.13 KB | 0644 |
|
_error.py | File | 8.02 KB | 0644 |
|
_interactor.py | File | 2.83 KB | 0644 |
|
_keyring.py | File | 2.25 KB | 0644 |
|