When we verify a macaroon for its caveats, usually it check each caveats independently.
In case of LSAT, this does not work since the validity of a caveat depends on a previous caveat
(more specifically, if there were two caveats with a same Condition, we usually check that whether the restriction
does not get more loose than before.)
So we can not just rely on Macaroon's
Instance member | Description |
Full Usage:
this.Condition
Returns: string
Modifiers: abstract |
This is the left side of caveat equation. e.g. for caveat "service=my_awesome_service", it is "service"
|
|
Satisfies the final caveat of an LSAT. If multiple caveats with the same condition exist, this will only be executed once all previous caveats are also satisfied.
|
|
ensures a caveat is in accordance with a previous one with the same condition. This is needed since caveats of the same condition can be used multiple times as long as they enforce more permissions than the previous. For example, we have a caveat that only allows us to use an LSAT for 7 more days. we can add another caveat that only allows for 3 more days of use and lend it to another party.
|