An authentication session that can authenticate outgoing HTTP requests.
More...
#include <auth_session.h>
|
| static std::shared_ptr< AuthSession > | MakeDefault (std::unordered_map< std::string, std::string > headers) |
| | Create a session with static headers.
|
| |
| static Result< std::shared_ptr< AuthSession > > | MakeOAuth2 (const OAuthTokenResponse &initial_token, const std::string &token_endpoint, const std::string &client_id, const std::string &client_secret, const std::string &scope, bool keep_refreshed, const std::unordered_map< std::string, std::string > &optional_oauth_params, std::shared_ptr< HttpClient > client) |
| | Create an OAuth2 session with automatic token refresh.
|
| |
An authentication session that can authenticate outgoing HTTP requests.
◆ Authenticate()
Authenticate an outgoing HTTP request.
Returns a request with authentication information (e.g., an Authorization header) added. Implementations must be idempotent. The request is passed by value so callers can move request bodies into the authentication path.
- Parameters
-
| request | The request to authenticate. |
- Returns
- The authenticated request on success, or one of:
- AuthenticationFailed: General authentication failure (invalid credentials, etc.)
- TokenExpired: Authentication token has expired and needs refresh
- NotAuthorized: Not authenticated (401)
- IOError: Network or connection errors when reaching auth server
- RestError: HTTP errors from authentication service
◆ Close()
| virtual Status iceberg::rest::auth::AuthSession::Close |
( |
| ) |
|
|
inlinevirtual |
Close the session and release any resources.
This method is called when the session is no longer needed. For stateful sessions (e.g., OAuth2 with token refresh), this should stop any background threads and release resources.
- Returns
- Status indicating success or failure of closing the session.
◆ MakeDefault()
| static std::shared_ptr< AuthSession > iceberg::rest::auth::AuthSession::MakeDefault |
( |
std::unordered_map< std::string, std::string > |
headers | ) |
|
|
static |
Create a session with static headers.
This factory method creates a session that adds a fixed set of headers to each request. It is suitable for authentication methods that use static credentials, such as Basic auth or static bearer tokens.
- Parameters
-
| headers | The headers to add to each request for authentication. |
- Returns
- A new session that adds the given headers to requests.
◆ MakeOAuth2()
| static Result< std::shared_ptr< AuthSession > > iceberg::rest::auth::AuthSession::MakeOAuth2 |
( |
const OAuthTokenResponse & |
initial_token, |
|
|
const std::string & |
token_endpoint, |
|
|
const std::string & |
client_id, |
|
|
const std::string & |
client_secret, |
|
|
const std::string & |
scope, |
|
|
bool |
keep_refreshed, |
|
|
const std::unordered_map< std::string, std::string > & |
optional_oauth_params, |
|
|
std::shared_ptr< HttpClient > |
client |
|
) |
| |
|
static |
Create an OAuth2 session with automatic token refresh.
This factory method creates a session that holds an access token and, when keep_refreshed is enabled, schedules background refresh based on token expiration. Authenticate() uses the latest cached Authorization header and does not perform a synchronous token refresh.
- Parameters
-
| initial_token | The initial token response from FetchToken(). |
| token_endpoint | Full URL of the OAuth2 token endpoint for refresh. |
| client_id | OAuth2 client ID for refresh requests. |
| client_secret | OAuth2 client secret for re-fetch if refresh fails. |
| scope | OAuth2 scope for refresh requests. |
| keep_refreshed | Whether to schedule automatic token refresh. |
| optional_oauth_params | Optional OAuth params (audience, resource) for refresh. |
| client | HTTP client for making refresh requests. The session retains ownership of the client. |
- Returns
- A new session that manages token lifecycle automatically.
The documentation for this class was generated from the following file: