Pure functions for WebSocket authentication logic.
Following FC/IS pattern - all functions are pure (no I/O). JWT token extraction and validation logic. Actual JWT verification delegated to shell/ports.
Pure functions for WebSocket authentication logic. Following FC/IS pattern - all functions are pure (no I/O). JWT token extraction and validation logic. Actual JWT verification delegated to shell/ports.
(auth-error reason)(auth-error reason details)Create authentication error result.
Pure function - standardized error format.
Args: reason - Error reason string details - Optional details map
Returns: Error map
Create authentication error result. Pure function - standardized error format. Args: reason - Error reason string details - Optional details map Returns: Error map
(connection-authorized? jwt-claims config now-seconds)Determine if connection should be authorized based on JWT claims.
Pure function - encapsulates authorization logic.
Args: jwt-claims - JWT claims map config - Authorization config map with: :required-permissions (optional) - Set of required permissions :required-roles (optional) - Set of required roles :allow-expired (optional) - Boolean, default false now-seconds - Current time in seconds since epoch
Returns: {:authorized? boolean :reason string (if not authorized)}
Determine if connection should be authorized based on JWT claims.
Pure function - encapsulates authorization logic.
Args:
jwt-claims - JWT claims map
config - Authorization config map with:
:required-permissions (optional) - Set of required permissions
:required-roles (optional) - Set of required roles
:allow-expired (optional) - Boolean, default false
now-seconds - Current time in seconds since epoch
Returns:
{:authorized? boolean
:reason string (if not authorized)}(explain-jwt-claims claims)Explain why JWT claims are invalid.
Pure function - returns validation errors.
Args: claims - JWT claims map
Returns: Malli explanation or nil if valid
Explain why JWT claims are invalid. Pure function - returns validation errors. Args: claims - JWT claims map Returns: Malli explanation or nil if valid
(extract-token-from-query query-params)Extract JWT token from query parameters.
Pure function - no side effects.
Args: query-params - Map of query parameters
Returns: Token string or nil if not found
Extract JWT token from query parameters. Pure function - no side effects. Args: query-params - Map of query parameters Returns: Token string or nil if not found
(extract-token-from-query-string query-string)Extract JWT token from query string.
Pure function - combines parsing and extraction.
Args: query-string - URL query string
Returns: Token string or nil if not found
Extract JWT token from query string. Pure function - combines parsing and extraction. Args: query-string - URL query string Returns: Token string or nil if not found
(extract-token-from-request request)Extract JWT token from request map.
Pure function - tries multiple common locations.
Args: request - Request map (Ring-style) with: :query-string - Query string :query-params - Parsed query params map :headers - Headers map
Returns: Token string or nil if not found
Extract JWT token from request map.
Pure function - tries multiple common locations.
Args:
request - Request map (Ring-style) with:
:query-string - Query string
:query-params - Parsed query params map
:headers - Headers map
Returns:
Token string or nil if not found(has-all-permissions? jwt-claims required-permissions)Check if JWT claims have all required permissions.
Pure function - no side effects.
Args: jwt-claims - JWT claims map with :permissions required-permissions - Set of permission keywords
Returns: Boolean - true if has all permissions
Check if JWT claims have all required permissions. Pure function - no side effects. Args: jwt-claims - JWT claims map with :permissions required-permissions - Set of permission keywords Returns: Boolean - true if has all permissions
(has-any-permission? jwt-claims required-permissions)Check if JWT claims have any of required permissions.
Pure function - no side effects.
Args: jwt-claims - JWT claims map with :permissions required-permissions - Set of permission keywords
Returns: Boolean - true if has at least one permission
Check if JWT claims have any of required permissions. Pure function - no side effects. Args: jwt-claims - JWT claims map with :permissions required-permissions - Set of permission keywords Returns: Boolean - true if has at least one permission
(has-any-role? jwt-claims required-roles)Check if JWT claims have any of required roles.
Pure function - no side effects.
Args: jwt-claims - JWT claims map with :roles required-roles - Set of role keywords
Returns: Boolean - true if has at least one role
Check if JWT claims have any of required roles. Pure function - no side effects. Args: jwt-claims - JWT claims map with :roles required-roles - Set of role keywords Returns: Boolean - true if has at least one role
(has-permission? jwt-claims required-permission)Check if JWT claims have required permission.
Pure function - no side effects.
Args: jwt-claims - JWT claims map with :permissions required-permission - Permission keyword required
Returns: Boolean - true if permission exists
Check if JWT claims have required permission. Pure function - no side effects. Args: jwt-claims - JWT claims map with :permissions required-permission - Permission keyword required Returns: Boolean - true if permission exists
(has-role? jwt-claims required-role)Check if JWT claims have required role.
Pure function - no side effects.
Args: jwt-claims - JWT claims map with :roles required-role - Role keyword required
Returns: Boolean - true if role exists
Check if JWT claims have required role. Pure function - no side effects. Args: jwt-claims - JWT claims map with :roles required-role - Role keyword required Returns: Boolean - true if role exists
(parse-query-string query-string)Parse query string into map.
Pure function - deterministic for given input.
Args: query-string - URL query string (e.g., 'token=abc&foo=bar')
Returns: Map of query parameters {"token" "abc" "foo" "bar"}
Parse query string into map.
Pure function - deterministic for given input.
Args:
query-string - URL query string (e.g., 'token=abc&foo=bar')
Returns:
Map of query parameters {"token" "abc" "foo" "bar"}(token-expired? jwt-claims now-seconds)Check if JWT token is expired.
Pure function - deterministic for given inputs.
Args: jwt-claims - JWT claims map with :exp now-seconds - Current time in seconds since epoch
Returns: Boolean - true if expired
Check if JWT token is expired. Pure function - deterministic for given inputs. Args: jwt-claims - JWT claims map with :exp now-seconds - Current time in seconds since epoch Returns: Boolean - true if expired
(valid-jwt-claims? claims)Validate JWT claims against schema.
Pure function - no side effects.
Args: claims - JWT claims map
Returns: Boolean - true if valid
Validate JWT claims against schema. Pure function - no side effects. Args: claims - JWT claims map Returns: Boolean - true if valid
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |