Versions in this module Expand all Collapse all v0 v0.1.0 Jun 20, 2026 Changes in this version + const BearerMethodBody + const BearerMethodHeader + const BearerMethodQuery + const ChallengeParamName + const SpecVersion + const WellKnownPathSegment + var ErrInvalidResponse = errors.New("prm: invalid metadata response") + var ErrInvalidSignedMetadata = errors.New("prm: invalid signed_metadata") + var ErrResourceMismatch = errors.New("prm: fetched resource does not match requested resource identifier") + var ErrUnexpectedStatus = errors.New("prm: unexpected HTTP status") + var ErrValidation = errors.New("prm: validation failed") + func ChallengeParam(metadataURL string) (name, value string) + func ServeMetadata(w http.ResponseWriter, m *Metadata) error + func WellKnownPath(resource string) (string, error) + func WellKnownRequestPath(resource string) (string, error) + type HTTPError struct + StatusCode int + func (e *HTTPError) Error() string + func (e *HTTPError) Unwrap() error + type HandlerOption func(*handlerConfig) + func WithETag(tag string) HandlerOption + func WithMaxAge(d time.Duration) HandlerOption + type Metadata struct + AuthorizationDetailsTypesSupported []string + AuthorizationServers []string + BearerMethodsSupported []string + DPoPBoundAccessTokensRequired bool + DPoPSigningAlgValuesSupported []string + Extra map[string]json.RawMessage + JWKSURI string + Resource string + ResourceDocumentation string + ResourceName string + ResourcePolicyURI string + ResourceSigningAlgValuesSupported []string + ResourceTOSURI string + ScopesSupported []string + SignedMetadata string + TLSClientCertificateBoundAccessTokens bool + func Fetch(ctx context.Context, c *http.Client, resource string) (*Metadata, error) + func FetchMetadataURL(ctx context.Context, c *http.Client, metadataURL, expectedResource string) (*Metadata, error) + func (m *Metadata) GetExtra(name string, v any) (present bool, err error) + func (m *Metadata) Handler(opts ...HandlerOption) http.Handler + func (m *Metadata) Localized(member, tag string) (value string, ok bool) + func (m *Metadata) ParseSignedMetadata() (*SignedMetadata, error) + func (m *Metadata) SetExtra(name string, v any) error + func (m *Metadata) UnmarshalJSON(data []byte) error + func (m *Metadata) Validate() error + func (m Metadata) MarshalJSON() ([]byte, error) + type SignedMetadata struct + Header map[string]json.RawMessage + Issuer string + Metadata *Metadata + Signature []byte + SigningInput []byte + Token string + func ParseSignedMetadata(token string) (*SignedMetadata, error) + func (sm *SignedMetadata) Apply(base *Metadata) (*Metadata, error) + type ValidationError struct + Field string + Message string + func (e *ValidationError) Error() string + func (e *ValidationError) Unwrap() error