Lockspire.Protocol.RequestObject
(lockspire v1.0.0)
Copy Markdown
Orchestrates JAR (RFC 9101) request-object consumption for /authorize and /par.
Composes Lockspire.Protocol.Jar.{decode/1, verify_signature/2, validate_claims/2}
into a single pipeline step that:
- Rejects outer-param conflicts (D-04) and
request/request_uricollisions (D-06). - Asserts the client has inline
jwksregistered (D-08). - Decodes, verifies the signature, and validates the request JWT claims with the
configured
:max_ageceiling (D-13). - Projects JAR claims into the same flat-params shape
pushed_request_to_params/1produces inLockspire.Protocol.AuthorizationRequest, sovalidate_with_client/3runs unchanged.
Out of scope (v1.4)
- JAR-by-reference (
request_uripointing to an external JWT URL) - JAR decryption (RFC 9101 §6 nested JWE)
jwks_uriHTTP fetch- JAR substituting as client authentication at
/par - JTI replay cache
Summary
Types
@type result() :: {:ok, map()} | {:browser_error, Lockspire.Protocol.AuthorizationRequest.Error.t()} | {:redirect_error, Lockspire.Protocol.AuthorizationRequest.Error.t()}
Functions
@spec consume(map(), Lockspire.Domain.Client.t(), keyword()) :: result()