Did you know ... Search Documentation:
Pack logtalk -- logtalk-3.102.0/docs/apis/_sources/http_oauth_0.rst.txt

.. index:: single: http_oauth .. _http_oauth/0:

.. rst-class:: right

object

http_oauth

OAuth Bearer parsing, challenge, authentication, authorization, and response helpers.

| Availability: | logtalk_load(http_oauth(loader))

| Author: Paulo Moura | Version: 1:0:0 | Date: 2026-09-01

| Compilation flags: | static, context_switching_calls

| Imports: | public :ref:`options <options/0>` | public :ref:`http_oauth_helpers <http_oauth_helpers/0>` | Uses: | :ref:`http_core <http_core/0>` | :ref:`list <list/0>` | :ref:`type <type/0>` | :ref:`user <user/0>`

| Remarks: | (none)

| Inherited public predicates: | Â :ref:`options_protocol/0::check_option/1` Â :ref:`options_protocol/0::check_options/1` Â :ref:`options_protocol/0::default_option/1` Â :ref:`options_protocol/0::default_options/1` Â :ref:`options_protocol/0::option/2` Â :ref:`options_protocol/0::option/3` Â :ref:`options_protocol/0::valid_option/1` Â :ref:`options_protocol/0::valid_options/1` Â

.. contents:: :local: :backlinks: top

Public predicates

.. index:: challenge/2 .. _http_oauth/0::challenge/2:

challenge/2 ^^^^^^^^^^^^^^^

Returns the single parsed Bearer challenge from a normalized HTTP response. Fails when the response contains no Bearer WWW-Authenticate header field.

| Compilation flags: | static

| Template: | challenge(Response,Challenge) | Mode and number of proofs: | challenge(+compound,-compound) - zero_or_one_or_error

| Exceptions: | Response is not a valid normalized HTTP response term: | domain_error(http_response,Response) | Response contains multiple Bearer WWW-Authenticate header values Values: | domain_error(http_oauth_header_values(www_authenticate),Values) | A Bearer WWW-Authenticate header field uses unsupported authentication scheme Scheme: | domain_error(http_oauth_bearer_scheme,Scheme) | A Bearer WWW-Authenticate header field value Value has invalid syntax: | domain_error(http_oauth_header(www_authenticate),Value) | A Bearer WWW-Authenticate header field value Value contains invalid or duplicate parameters: | domain_error(http_oauth_challenge_parameters,Value) | A Bearer WWW-Authenticate header field contains invalid scope value Scope: | domain_error(http_oauth_scope,Scope) | A Bearer WWW-Authenticate header field contains invalid parameter name Name: | domain_error(http_authentication_parameter_name,Name)


.. index:: authorization/2 .. _http_oauth/0::authorization/2:

authorization/2 ^^^^^^^^^^^^^^^^^^^

Returns the single parsed Bearer authorization from a normalized HTTP request. Fails when the request contains no Bearer Authorization header field.

| Compilation flags: | static

| Template: | authorization(Request,Authorization) | Mode and number of proofs: | authorization(+compound,-compound) - zero_or_one_or_error

| Exceptions: | Request is not a valid normalized HTTP request term: | domain_error(http_request,Request) | Request contains multiple Bearer Authorization header values Values: | domain_error(http_oauth_header_values(authorization),Values) | A Bearer Authorization header field uses unsupported authentication scheme Scheme: | domain_error(http_oauth_bearer_scheme,Scheme) | A Bearer Authorization header field value Value has invalid syntax: | domain_error(http_oauth_header(authorization),Value) | A Bearer Authorization header field contains invalid token Token: | domain_error(http_oauth_bearer_token,Token)


.. index:: parse_challenge/2 .. _http_oauth/0::parse_challenge/2:

parse_challenge/2 ^^^^^^^^^^^^^^^^^^^^^

Parses a Bearer challenge header value.

| Compilation flags: | static

| Template: | parse_challenge(Text,Challenge) | Mode and number of proofs: | parse_challenge(++text,-compound) - one_or_error

| Exceptions: | Text is a variable: | instantiation_error | Text is neither a variable nor text: | type_error(text,Text) | Text uses unsupported authentication scheme Scheme: | domain_error(http_oauth_bearer_scheme,Scheme) | Text is not a valid Bearer challenge header value: | domain_error(http_oauth_header(www_authenticate),Text) | Text contains invalid or duplicate Bearer challenge parameters: | domain_error(http_oauth_challenge_parameters,Text) | Text contains invalid Bearer scope value Scope: | domain_error(http_oauth_scope,Scope) | Text contains invalid Bearer challenge parameter name Name: | domain_error(http_authentication_parameter_name,Name)


.. index:: generate_challenge/2 .. _http_oauth/0::generate_challenge/2:

generate_challenge/2 ^^^^^^^^^^^^^^^^^^^^^^^^

Generates a Bearer challenge header value.

| Compilation flags: | static

| Template: | generate_challenge(Challenge,HeaderValue) | Mode and number of proofs: | generate_challenge(+compound,-atom) - one_or_error

| Exceptions: | Challenge is not a valid normalized Bearer challenge term or contains duplicate fields: | domain_error(http_oauth_term(challenge),Challenge)


.. index:: parse_authorization/2 .. _http_oauth/0::parse_authorization/2:

parse_authorization/2 ^^^^^^^^^^^^^^^^^^^^^^^^^

Parses a Bearer authorization header value.

| Compilation flags: | static

| Template: | parse_authorization(Text,Authorization) | Mode and number of proofs: | parse_authorization(++text,-compound) - one_or_error

| Exceptions: | Text is a variable: | instantiation_error | Text is neither a variable nor text: | type_error(text,Text) | Text uses unsupported authentication scheme Scheme: | domain_error(http_oauth_bearer_scheme,Scheme) | Text is not a valid Bearer authorization header value: | domain_error(http_oauth_header(authorization),Text) | Text contains invalid Bearer token Token: | domain_error(http_oauth_bearer_token,Token)


.. index:: generate_authorization/2 .. _http_oauth/0::generate_authorization/2:

generate_authorization/2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Generates a Bearer authorization header value.

| Compilation flags: | static

| Template: | generate_authorization(Authorization,HeaderValue) | Mode and number of proofs: | generate_authorization(+compound,-atom) - one_or_error

| Exceptions: | Authorization is not a valid normalized Bearer authorization term: | domain_error(http_oauth_term(authorization),Authorization)


.. index:: authenticate_request/4 .. _http_oauth/0::authenticate_request/4:

authenticate_request/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^

Authenticates a normalized request, returning continue(AnnotatedRequest) or respond(Response).

| Compilation flags: | static

| Template: | authenticate_request(Request,Verifier,Action,Options) | Mode and number of proofs: | authenticate_request(+compound,+object_identifier,--compound,+list(compound)) - one_or_error

| Exceptions: | Request is not a valid normalized HTTP request term: | domain_error(http_request,Request) | Verifier is a variable: | instantiation_error | Verifier does not name an existing object: | existence_error(http_oauth_verifier,Verifier) | Verifier does not implement http_oauth_verifier_protocol: | domain_error(http_oauth_verifier,Verifier) | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | Options omits a protected-resource identifier: | domain_error(http_oauth_protection_options,Options) | Verifier returns malformed normalized token information TokenInfo: | domain_error(http_oauth_token_info,TokenInfo) | The generated response properties Properties are invalid: | domain_error(http_properties,Properties) | The generated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The generated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: authorize_request/3 .. _http_oauth/0::authorize_request/3:

authorize_request/3 ^^^^^^^^^^^^^^^^^^^^^^^

Authorizes an authenticated request against required scopes, returning continue(Request) or respond(Response).

| Compilation flags: | static

| Template: | authorize_request(Request,Action,Options) | Mode and number of proofs: | authorize_request(+compound,--compound,+list(compound)) - one_or_error

| Exceptions: | Request is not a valid normalized HTTP request term: | domain_error(http_request,Request) | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | Request is not annotated with authenticated OAuth scopes: | domain_error(http_oauth_authenticated_request,Request) | The generated response properties Properties are invalid: | domain_error(http_properties,Properties) | The generated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The generated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: protect_request/4 .. _http_oauth/0::protect_request/4:

protect_request/4 ^^^^^^^^^^^^^^^^^^^^^

Authenticates and authorizes a normalized request.

| Compilation flags: | static

| Template: | protect_request(Request,Verifier,Action,Options) | Mode and number of proofs: | protect_request(+compound,+object_identifier,--compound,+list(compound)) - one_or_error

| Exceptions: | Request is not a valid normalized HTTP request term: | domain_error(http_request,Request) | Verifier is a variable: | instantiation_error | Verifier does not name an existing object: | existence_error(http_oauth_verifier,Verifier) | Verifier does not implement http_oauth_verifier_protocol: | domain_error(http_oauth_verifier,Verifier) | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | Options omits a protected-resource identifier: | domain_error(http_oauth_protection_options,Options) | Verifier returns malformed normalized token information TokenInfo: | domain_error(http_oauth_token_info,TokenInfo) | The generated response properties Properties are invalid: | domain_error(http_properties,Properties) | The generated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The generated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: token_info/2 .. _http_oauth/0::token_info/2:

token_info/2 ^^^^^^^^^^^^^^^^

Returns normalized OAuth token information from an authenticated request.

| Compilation flags: | static

| Template: | token_info(Request,TokenInfo) | Mode and number of proofs: | token_info(+compound,-compound) - zero_or_one


.. index:: scopes/2 .. _http_oauth/0::scopes/2:

scopes/2 ^^^^^^^^^^^^

Returns granted OAuth scopes from an authenticated request.

| Compilation flags: | static

| Template: | scopes(Request,Scopes) | Mode and number of proofs: | scopes(+compound,-list(atom)) - zero_or_one


.. index:: unauthorized_response/3 .. _http_oauth/0::unauthorized_response/3:

unauthorized_response/3 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Builds a normalized 401 response and its Bearer challenge.

| Compilation flags: | static

| Template: | unauthorized_response(Challenge,Response,Options) | Mode and number of proofs: | unauthorized_response(-compound,-compound,+list(compound)) - one_or_error

| Exceptions: | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | The generated response properties Properties are invalid: | domain_error(http_properties,Properties) | The generated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The generated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: unauthorized_response/4 .. _http_oauth/0::unauthorized_response/4:

unauthorized_response/4 ^^^^^^^^^^^^^^^^^^^^^^^^^^^

Decorates a normalized response as a 401 Bearer response.

| Compilation flags: | static

| Template: | unauthorized_response(Challenge,Response0,Response,Options) | Mode and number of proofs: | unauthorized_response(+compound,+compound,-compound,+list(compound)) - one_or_error

| Exceptions: | Challenge is not a valid normalized Bearer challenge term or contains duplicate fields: | domain_error(http_oauth_term(challenge),Challenge) | Response0 is not a valid normalized HTTP response term: | domain_error(http_response,Response0) | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | The decorated response properties Properties are invalid: | domain_error(http_properties,Properties) | The decorated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The decorated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: forbidden_response/3 .. _http_oauth/0::forbidden_response/3:

forbidden_response/3 ^^^^^^^^^^^^^^^^^^^^^^^^

Builds a normalized 403 response and its Bearer challenge.

| Compilation flags: | static

| Template: | forbidden_response(Challenge,Response,Options) | Mode and number of proofs: | forbidden_response(-compound,-compound,+list(compound)) - one_or_error

| Exceptions: | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | The generated response properties Properties are invalid: | domain_error(http_properties,Properties) | The generated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The generated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


.. index:: forbidden_response/4 .. _http_oauth/0::forbidden_response/4:

forbidden_response/4 ^^^^^^^^^^^^^^^^^^^^^^^^

Decorates a normalized response as a 403 Bearer response.

| Compilation flags: | static

| Template: | forbidden_response(Challenge,Response0,Response,Options) | Mode and number of proofs: | forbidden_response(+compound,+compound,-compound,+list(compound)) - one_or_error

| Exceptions: | Challenge is not a valid normalized Bearer challenge term or contains duplicate fields: | domain_error(http_oauth_term(challenge),Challenge) | Response0 is not a valid normalized HTTP response term: | domain_error(http_response,Response0) | Options is a variable or a partial list: | instantiation_error | Options is neither a variable nor a list: | type_error(list,Options) | An element Option of the list Options is a variable: | instantiation_error | An element Option of the list Options is neither a variable nor a compound term: | type_error(compound,Option) | An element Option of the list Options is a compound term but not a valid option: | domain_error(option,Option) | The scope checker ScopeChecker selected by Options does not name an existing object: | existence_error(http_oauth_scope_checker,ScopeChecker) | The scope checker ScopeChecker selected by Options does not implement http_oauth_scope_checker_protocol: | domain_error(http_oauth_scope_checker,ScopeChecker) | The decorated response properties Properties are invalid: | domain_error(http_properties,Properties) | The decorated response header Header violates normalized HTTP response semantics: | domain_error(http_header_semantics,Header) | The decorated response property Property violates normalized HTTP response semantics: | domain_error(http_property_semantics,Property)


Protected predicates

(no local declarations; see entity ancestors if any)

Private predicates

(no local declarations; see entity ancestors if any)

Operators

(none)