Session Management
SessionManager provides thread-safe cookie and header storage, used internally by DomainClient.
NewSessionManager
func NewSessionManager(config ...*SessionConfig) (*SessionManager, error)Creates a session manager.
sm, err := httpc.NewSessionManager()
// With configuration
cfg := httpc.DefaultSessionConfig()
cfg.CookieSecurity = httpc.StrictCookieSecurityConfig()
sm, err := httpc.NewSessionManager(cfg)SessionConfig
type SessionConfig struct {
CookieSecurity *CookieSecurityConfig
}| Field | Type | Description |
|---|---|---|
CookieSecurity | *CookieSecurityConfig | Cookie security validation config; nil means no validation |
func DefaultSessionConfig() *SessionConfigReturns default configuration (no cookie security validation).
Header Management
SetHeader
func (s *SessionManager) SetHeader(key, value string) errorSets a session header. All subsequent requests will include it automatically. Validates header key-value validity.
err := sm.SetHeader("Authorization", "Bearer "+token)SetHeaders
func (s *SessionManager) SetHeaders(headers map[string]string) errorSets multiple session headers at once.
err := sm.SetHeaders(map[string]string{
"Authorization": "Bearer " + token,
"Accept": "application/json",
})DeleteHeader
func (s *SessionManager) DeleteHeader(key string)Removes a specific session header.
ClearHeaders
func (s *SessionManager) ClearHeaders()Clears all session headers.
GetHeaders
func (s *SessionManager) GetHeaders() map[string]stringReturns a copy of all session headers.
Cookie Management
SetCookie
func (s *SessionManager) SetCookie(cookie *http.Cookie) errorSets a session cookie. Validates cookie validity and security attributes if CookieSecurity is configured.
err := sm.SetCookie(&http.Cookie{
Name: "session",
Value: "abc123",
Secure: true,
HttpOnly: true,
})SetCookies
func (s *SessionManager) SetCookies(cookies []*http.Cookie) errorSets multiple cookies at once.
DeleteCookie
func (s *SessionManager) DeleteCookie(name string)Removes a cookie by name.
ClearCookies
func (s *SessionManager) ClearCookies()Clears all cookies.
GetCookies
func (s *SessionManager) GetCookies() []*http.CookieReturns a copy of all cookies.
GetCookie
func (s *SessionManager) GetCookie(name string) *http.CookieGets a copy of a cookie by name, returns nil if it does not exist.
Cookie Security
SetCookieSecurity
func (s *SessionManager) SetCookieSecurity(config *CookieSecurityConfig)Updates the cookie security validation configuration. Affects all subsequent SetCookie calls.
sm.SetCookieSecurity(httpc.StrictCookieSecurityConfig())UpdateFromResult
func (s *SessionManager) UpdateFromResult(result *Result)Updates session cookies from a request result. Insecure cookies are silently skipped.
UpdateFromCookies
func (s *SessionManager) UpdateFromCookies(cookies []*http.Cookie)Updates session cookies from a cookie slice.
See Also
- Domain Client - DomainClient reference
- Domain Client and Sessions - Usage guide
- Interface Definitions - DomainClienter interface reference