Undertow HttpHandler
functionality and library of standard handlers.
Undertow `HttpHandler` functionality and library of standard handlers.
(as-arity-1-wrapper f)
Converts 1-arity function (fn [handler])
to function (fn [obj])
returning handler wrapper (fn [handler] ...)
.
Converts 1-arity function `(fn [handler])` to function `(fn [obj])` returning handler wrapper `(fn [handler] ...)`.
(as-arity-2-wrapper f)
Converts 2-arity function (fn [handler obj])
to function (fn [obj])
returning handler wrapper (fn [handler] ...)
.
Converts 2-arity function `(fn [handler obj])` to function `(fn [obj])` returning handler wrapper `(fn [handler] ...)`.
(define-type type {:keys [as-handler as-wrapper alias]})
Adds multimethods for declarative description of HTTP handlers.
type
A constant to distinguish specific handler, usually handler function
itself.:as-handler
The function (fn [obj] handler)
to coerce obj
to
handler.:as-wrapper
The function (fn [obj] (fn [handler]))
returning
function to wrap another handler.:alias
The alias for the type
, usually keyword.Adds multimethods for declarative description of HTTP handlers. 1) `type` A constant to distinguish specific handler, usually handler function itself. 2) Options: - `:as-handler` The function `(fn [obj] handler)` to coerce `obj` to handler. - `:as-wrapper` The function `(fn [obj] (fn [handler]))` returning function to wrap another handler. - `:alias` The alias for the `type`, usually keyword.
(force-dispatch handler)
A HttpHandler that dispatches request if it is running in the io thread.
A HttpHandler that dispatches request if it is running in the io thread.
(graceful-shutdown next-handler)
Returns a new handler that can be used to wait for all requests to finish before shutting down the server gracefully.
Returns a new handler that can be used to wait for all requests to finish before shutting down the server gracefully.
(in-memory-session-manager
{:keys [session-id-generator deployment-name max-sessions
expire-oldest-unused-session-on-max statistics-enabled]
:or {max-sessions 0 expire-oldest-unused-session-on-max true}})
Return instance of InMemorySessionManager
given configuration map.
Return instance of `InMemorySessionManager` given configuration map.
(path config)
(path default-handler {:keys [prefix exact cache-size]})
Returns a new path handler, with optional default handler. A HttpHandler
that dispatches to a given handler based of a prefix match of the path. This
only matches a single level of a request, e.g. if you have a request that
takes the form: /foo/bar
.
Arguments:
default-handler
The handler that is invoked if there are no paths matched.
config
The configuration map with options:
:prefix
The map of path prefixes and their handlers.
/
then one will be prepended./foo
will also
match /foo/bar
. Though exact path matches are taken into account
before prefix path matches. So if an exact path match exists its handler
will be triggered./
is specified as the path then it will replace the default handler.:exact
The map of exact paths and their handlers.
:cache-size
The cache size, unlimited by default, integer.
Example:
(handler/path {:prefix {"static" (handler/resource {...})}
:exact {"ws" (handler/websocket {...})}})
Returns a new path handler, with optional default handler. A `HttpHandler` that dispatches to a given handler based of a prefix match of the path. This only matches a single level of a request, e.g. if you have a request that takes the form: `/foo/bar`. Arguments: - `default-handler` The handler that is invoked if there are no paths matched. - `config` The configuration map with options: - `:prefix` The map of path prefixes and their handlers. + If the path does not start with a `/` then one will be prepended. + The match is done on a prefix bases, so registering `/foo` will also match `/foo/bar`. Though exact path matches are taken into account before prefix path matches. So if an exact path match exists its handler will be triggered. + If `/` is specified as the path then it will replace the default handler. - `:exact` The map of exact paths and their handlers. + If the request path is exactly equal to the given path, run the handler. + Exact paths are prioritized higher than prefix paths. - `:cache-size` The cache size, unlimited by default, integer. Example: (handler/path {:prefix {"static" (handler/resource {...})} :exact {"ws" (handler/websocket {...})}})
(proxy-peer-address next-handler)
Returns a new handler that sets the peer address based on the
X-Forwarded-For
and X-Forwarded-Proto
headers.
This should only be used behind a proxy that always sets this header, otherwise it is possible for an attacker to forge their peer address.
Returns a new handler that sets the peer address based on the `X-Forwarded-For` and `X-Forwarded-Proto` headers. This should only be used behind a proxy that always sets this header, otherwise it is possible for an attacker to forge their peer address.
(request-dump next-handler)
Returns a handler that dumps requests to the log for debugging purposes.
Returns a handler that dumps requests to the log for debugging purposes.
(resource resource-manager)
(resource next-handler resource-manager)
Returns a new resource handler with optional next handler that is called if no resource is found.
Function arguments:
next-handler
The handler that is called if no resource is found.
resource-manager
The instance of ResourceManager
or resource manager
configuration map.
Resource manager configuration options:
:resource-manager
The type of configuration manager, keyword.
:type
in configuration passed to api.types/as-resource-manager
.Configuration options of :class-path
resource manager:
:prefix
The prefix that is appended to resources that are to be
loaded, string.
Example:
(handler/resource {:resource-manager :class-path
:prefix "public/static"})
Returns a new resource handler with optional next handler that is called if no resource is found. Function arguments: - `next-handler` The handler that is called if no resource is found. - `resource-manager` The instance of `ResourceManager` or resource manager configuration map. Resource manager configuration options: - `:resource-manager` The type of configuration manager, keyword. + Used as `:type` in configuration passed to [[api.types/as-resource-manager]]. Configuration options of `:class-path` resource manager: - `:prefix` The prefix that is appended to resources that are to be loaded, string. + Default prefix is "public". Example: (handler/resource {:resource-manager :class-path :prefix "public/static"})
(session-attachment next-handler
{:keys [session-manager session-config]
:or {session-manager {} session-config {}}})
Returns a new handler that attaches the session to the request. This handler is also the place where session cookie configuration properties are configured. Note: this approach is not used by Servlet, which has its own session handlers.
next-handler
The handler that is called after attaching session.
Handler configuration map with options:
session-manager
The instance of SessionManager
or session manager
configuration map. If not specified then InMemorySessionManager
is used
with default settings (see in-memory-session-manager
).
session-config
The instance of SessionConfig
or session config
configuration map. If not specified then SessionCookieConfig
is used
with default settings (see session-cookie-config
).
Returns a new handler that attaches the session to the request. This handler is also the place where session cookie configuration properties are configured. Note: this approach is not used by Servlet, which has its own session handlers. 1) `next-handler` The handler that is called after attaching session. 2) Handler configuration map with options: - `session-manager` The instance of `SessionManager` or session manager configuration map. If not specified then `InMemorySessionManager` is used with default settings (see [[in-memory-session-manager]]). - `session-config` The instance of `SessionConfig` or session config configuration map. If not specified then `SessionCookieConfig` is used with default settings (see [[session-cookie-config]]).
(session-cookie-config {:keys [cookie-name path domain discard secure http-only
max-age comment]})
Returns instance of SessionCookieConfig
given configuration map.
Returns instance of `SessionCookieConfig` given configuration map.
(simple-error-page next-handler)
Returns a handler that generates an extremely simple no frills error page.
Returns a handler that generates an extremely simple no frills error page.
(virtual-host {:keys [host]})
(virtual-host default-handler config)
Returns a new virtual host handler, with optional default handler.
A HttpHandler
that implements virtual hosts based on the Host:
http
header.
Arguments:
default-handler
The handler that is invoked if there are no hostnames
matched.
config
The configuration map with options:
:host
The map of hostnames and their handlers.Example:
(handler/virtual-host {:host {"static.localhost" (handler/resource {...})
"ws.localhost" (handler/websocket {...})})
Returns a new virtual host handler, with optional default handler. A `HttpHandler` that implements virtual hosts based on the `Host:` http header. Arguments: - `default-handler` The handler that is invoked if there are no hostnames matched. - `config` The configuration map with options: - `:host` The map of hostnames and their handlers. Example: (handler/virtual-host {:host {"static.localhost" (handler/resource {...}) "ws.localhost" (handler/websocket {...})})
(websocket {:as callback :keys [on-connect on-message on-close on-error]})
(websocket callback)
(websocket next-handler
{:as callback :keys [on-connect on-message on-close on-error]})
(websocket next-handler callback)
Returns a new web socket session handler with optional next handler to invoke
if the web socket connection fails. A HttpHandler
which will process the
HttpServerExchange
and do the actual handshake/upgrade to WebSocket.
Function arguments:
next-handler
The handler that is invoked if there are no web socket
headers.
callback
The instance of the WebSocketConnectionCallback
or callback
configuration map.
Callback configuration options:
:on-connect
The function (fn [{:keys [callback exchange channel]}])
.
:on-message
The function (fn [{:keys [callback channel text data]}])
.
:text
and binary message is
provided in :data
.:on-close
The function (fn [{:keys [callback channel code reason]}])
.
:code
is status code to close messages:
http://tools.ietf.org/html/rfc6455#section-7.4:on-error
The function (fn [{:keys [callback channel error]}])
.
Returns a new web socket session handler with optional next handler to invoke if the web socket connection fails. A `HttpHandler` which will process the `HttpServerExchange` and do the actual handshake/upgrade to WebSocket. Function arguments: - `next-handler` The handler that is invoked if there are no web socket headers. - `callback` The instance of the `WebSocketConnectionCallback` or callback configuration map. Callback configuration options: - `:on-connect` The function `(fn [{:keys [callback exchange channel]}])`. + Is called once the WebSocket connection is established, which means the handshake was successful. - `:on-message` The function `(fn [{:keys [callback channel text data]}])`. + Is called when listener receives a message. + The text message is provided in `:text` and binary message is provided in `:data`. - `:on-close` The function `(fn [{:keys [callback channel code reason]}])`. + Is called once the WebSocket connection is closed. + The `:code` is status code to close messages: http://tools.ietf.org/html/rfc6455#section-7.4 - `:on-error` The function `(fn [{:keys [callback channel error]}])`. + Is called on WebSocket connection error. + Default implementation just closes WebSocket connection.
(wrap-handler handler with)
Wraps handler
chaining with sequence of handler wrappers in with
.
Wraps `handler` chaining with sequence of handler wrappers in `with`.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close