object Middleware extends HandlerAspects
- Annotations
- @nowarn()
- Alphabetic
- By Inheritance
- Middleware
- HandlerAspects
- HeaderModifier
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
final
case class
CorsConfig(allowedOrigin: (Origin) ⇒ Option[AccessControlAllowOrigin] = ..., allowedMethods: AccessControlAllowMethods = ..., allowedHeaders: AccessControlAllowHeaders = ..., allowCredentials: AccessControlAllowCredentials = ..., exposedHeaders: AccessControlExposeHeaders = ..., maxAge: Option[AccessControlMaxAge] = None) extends Product with Serializable
Configuration for the CORS aspect.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addCookie(cookie: Cookie.Response): HandlerAspect[Any, Unit]
Sets a cookie in the response headers
Sets a cookie in the response headers
- Definition Classes
- HandlerAspects
-
def
addCookieZIO[Env](cookie: ZIO[Env, Nothing, Cookie.Response])(implicit trace: Trace): HandlerAspect[Env, Unit]
Sets an effectfully created cookie in the response headers.
Sets an effectfully created cookie in the response headers.
- Definition Classes
- HandlerAspects
-
final
def
addHeader(name: CharSequence, value: CharSequence): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
final
def
addHeader(header: Header): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
final
def
addHeaders(headers: Headers): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
def
allow: Allow
Creates a middleware which can allow or disallow access to an http based on the predicate
Creates a middleware which can allow or disallow access to an http based on the predicate
- Definition Classes
- HandlerAspects
-
def
allowZIO: AllowZIO
Creates a middleware which can allow or disallow access to an http based on the effectful predicate.
Creates a middleware which can allow or disallow access to an http based on the effectful predicate.
- Definition Classes
- HandlerAspects
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
basicAuth(u: String, p: String): HandlerAspect[Any, Unit]
Creates a middleware for basic authentication that checks if the credentials are same as the ones given
Creates a middleware for basic authentication that checks if the credentials are same as the ones given
- Definition Classes
- HandlerAspects
-
def
basicAuth(f: (Credentials) ⇒ Boolean): HandlerAspect[Any, Unit]
Creates a middleware for basic authentication
Creates a middleware for basic authentication
- Definition Classes
- HandlerAspects
-
def
basicAuthZIO[Env](f: (Credentials) ⇒ ZIO[Env, Response, Boolean])(implicit trace: Trace): HandlerAspect[Env, Unit]
Creates a middleware for basic authentication using an effectful verification function
Creates a middleware for basic authentication using an effectful verification function
- Definition Classes
- HandlerAspects
-
def
bearerAuth(f: (String) ⇒ Boolean): HandlerAspect[Any, Unit]
Creates a middleware for bearer authentication that checks the token using the given function
Creates a middleware for bearer authentication that checks the token using the given function
- Definition Classes
- HandlerAspects
-
def
bearerAuthZIO[Env](f: (String) ⇒ ZIO[Env, Response, Boolean])(implicit trace: Trace): HandlerAspect[Env, Unit]
Creates a middleware for bearer authentication that checks the token using the given effectful function
Creates a middleware for bearer authentication that checks the token using the given effectful function
- Definition Classes
- HandlerAspects
-
def
beautifyErrors: HandlerAspect[Any, Unit]
Beautify the error response.
Beautify the error response.
- Definition Classes
- HandlerAspects
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
-
def
cors(config: CorsConfig): Middleware[Any]
Creates a aspect for Cross-Origin Resource Sharing (CORS).
Creates a aspect for Cross-Origin Resource Sharing (CORS).
- See also
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
-
def
cors: Middleware[Any]
Creates a aspect for Cross-Origin Resource Sharing (CORS) using default options.
Creates a aspect for Cross-Origin Resource Sharing (CORS) using default options.
- See also
https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
-
def
customAuth(verify: (Request) ⇒ Boolean, responseHeaders: Headers = Headers.empty, responseStatus: Status = Status.Unauthorized): HandlerAspect[Any, Unit]
Creates an authentication middleware that only allows authenticated requests to be passed on to the app.
Creates an authentication middleware that only allows authenticated requests to be passed on to the app.
- Definition Classes
- HandlerAspects
-
final
def
customAuthProviding[Context](provide: (Request) ⇒ Option[Context], responseHeaders: Headers = Headers.empty, responseStatus: Status = Status.Unauthorized): HandlerAspect[Any, Context]
Creates an authentication middleware that only allows authenticated requests to be passed on to the app, and provides a context to the request handlers.
Creates an authentication middleware that only allows authenticated requests to be passed on to the app, and provides a context to the request handlers.
- Definition Classes
- HandlerAspects
-
def
customAuthProvidingZIO[Env, Context](provide: (Request) ⇒ ZIO[Env, Response, Option[Context]], responseHeaders: Headers = Headers.empty, responseStatus: Status = Status.Unauthorized): HandlerAspect[Env, Context]
Creates an authentication middleware that only allows authenticated requests to be passed on to the app, and provides a context to the request handlers.
Creates an authentication middleware that only allows authenticated requests to be passed on to the app, and provides a context to the request handlers.
- Definition Classes
- HandlerAspects
-
def
customAuthZIO[Env](verify: (Request) ⇒ ZIO[Env, Response, Boolean], responseHeaders: Headers = Headers.empty, responseStatus: Status = Status.Unauthorized): HandlerAspect[Env, Unit]
Creates an authentication middleware that only allows authenticated requests to be passed on to the app using an effectful verification function.
Creates an authentication middleware that only allows authenticated requests to be passed on to the app using an effectful verification function.
- Definition Classes
- HandlerAspects
-
def
debug: HandlerAspect[Any, Unit]
Creates middleware that debugs request and response.
Creates middleware that debugs request and response.
- Definition Classes
- HandlerAspects
-
def
dropTrailingSlash(onlyIfNoQueryParams: Boolean): HandlerAspect[Any, Unit]
Creates middleware that drops trailing slashes from the request URL.
Creates middleware that drops trailing slashes from the request URL.
- Definition Classes
- HandlerAspects
-
def
dropTrailingSlash: HandlerAspect[Any, Unit]
Creates middleware that drops trailing slashes from the request URL.
Creates middleware that drops trailing slashes from the request URL.
- Definition Classes
- HandlerAspects
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
fail(response: Response): HandlerAspect[Any, Unit]
Creates middleware that aborts the request with the specified response.
Creates middleware that aborts the request with the specified response. No downstream middleware will be invoked.
- Definition Classes
- HandlerAspects
-
def
failWith(f: (Request) ⇒ Response): HandlerAspect[Any, Unit]
Creates middleware that aborts the request with the specified response.
Creates middleware that aborts the request with the specified response. No downstream middleware will be invoked.
- Definition Classes
- HandlerAspects
-
def
flashScopeHandling: HandlerAspect[Any, Unit]
Creates a middleware for managing the flash scope.
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
val
identity: HandlerAspect[Any, Unit]
The identity middleware, which has no effect on request or response.
The identity middleware, which has no effect on request or response.
- Definition Classes
- HandlerAspects
-
def
ifHeaderThenElse[Env, Ctx](condition: (Headers) ⇒ Boolean)(ifTrue: HandlerAspect[Env, Ctx], ifFalse: HandlerAspect[Env, Ctx]): HandlerAspect[Env, Ctx]
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request's headers.
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request's headers.
- Definition Classes
- HandlerAspects
-
def
ifMethodThenElse[Env, Ctx](condition: (Method) ⇒ Boolean)(ifTrue: HandlerAspect[Env, Ctx], ifFalse: HandlerAspect[Env, Ctx]): HandlerAspect[Env, Ctx]
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request's method.
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request's method.
- Definition Classes
- HandlerAspects
-
def
ifRequestThenElse[Env, CtxOut](predicate: (Request) ⇒ Boolean)(ifTrue: HandlerAspect[Env, CtxOut], ifFalse: HandlerAspect[Env, CtxOut]): HandlerAspect[Env, CtxOut]
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request.
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, applied to the incoming request.
- Definition Classes
- HandlerAspects
-
def
ifRequestThenElseZIO[Env, CtxOut](predicate: (Request) ⇒ ZIO[Env, Response, Boolean])(ifTrue: HandlerAspect[Env, CtxOut], ifFalse: HandlerAspect[Env, CtxOut]): HandlerAspect[Env, CtxOut]
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, effectfully applied to the incoming request.
Creates conditional middleware that switches between one middleware and another based on the result of the predicate, effectfully applied to the incoming request.
- Definition Classes
- HandlerAspects
-
def
intercept(fromRequestAndResponse: (Request, Response) ⇒ Response): HandlerAspect[Any, Unit]
Creates middleware that modifies the response, potentially using the request.
Creates middleware that modifies the response, potentially using the request.
- Definition Classes
- HandlerAspects
-
def
interceptHandler[Env, CtxOut](incoming0: Handler[Env, Response, Request, (Request, CtxOut)])(outgoing0: Handler[Env, Nothing, Response, Response]): HandlerAspect[Env, CtxOut]
Creates middleware that will apply the specified stateless handlers to incoming and outgoing requests.
Creates middleware that will apply the specified stateless handlers to incoming and outgoing requests. If the incoming handler fails, then the outgoing handler will not be invoked.
- Definition Classes
- HandlerAspects
-
def
interceptHandlerStateful[Env, State0, CtxOut](incoming0: Handler[Env, Response, Request, (State0, (Request, CtxOut))])(outgoing0: Handler[Env, Nothing, (State0, Response), Response]): HandlerAspect[Env, CtxOut]
Creates middleware that will apply the specified stateful handlers to incoming and outgoing requests.
Creates middleware that will apply the specified stateful handlers to incoming and outgoing requests. If the incoming handler fails, then the outgoing handler will not be invoked.
- Definition Classes
- HandlerAspects
-
def
interceptIncomingHandler[Env, CtxOut](handler: Handler[Env, Response, Request, (Request, CtxOut)]): HandlerAspect[Env, CtxOut]
Creates middleware that will apply the specified handler to incoming requests.
Creates middleware that will apply the specified handler to incoming requests.
- Definition Classes
- HandlerAspects
-
def
interceptOutgoingHandler[Env](handler: Handler[Env, Nothing, Response, Response]): HandlerAspect[Env, Unit]
Creates middleware that will apply the specified handler to outgoing responses.
Creates middleware that will apply the specified handler to outgoing responses.
- Definition Classes
- HandlerAspects
-
def
interceptPatch[S](fromRequest: (Request) ⇒ S): InterceptPatch[S]
Creates a new middleware using transformation functions
Creates a new middleware using transformation functions
- Definition Classes
- HandlerAspects
-
def
interceptPatchZIO[Env, S](fromRequest: (Request) ⇒ ZIO[Env, Response, S]): InterceptPatchZIO[Env, S]
Creates a new middleware using effectful transformation functions
Creates a new middleware using effectful transformation functions
- Definition Classes
- HandlerAspects
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
logAnnotate(fromRequest: (Request) ⇒ Set[LogAnnotation])(implicit trace: Trace): Middleware[Any]
Creates a middleware that will annotate log messages that are logged while a request is handled with log annotations derived from the request.
- def logAnnotate(logAnnotations: ⇒ Set[LogAnnotation])(implicit trace: Trace): Middleware[Any]
- def logAnnotate(logAnnotation: ⇒ LogAnnotation, logAnnotations: LogAnnotation*)(implicit trace: Trace): Middleware[Any]
- def logAnnotate(key: ⇒ String, value: ⇒ String)(implicit trace: Trace): Middleware[Any]
-
def
logAnnotateHeaders(header: HeaderType, headers: HeaderType*)(implicit trace: Trace): Middleware[Any]
Creates middleware that will annotate log messages that are logged while a request is handled with the names and the values of the specified headers.
-
def
logAnnotateHeaders(headerName: String, headerNames: String*)(implicit trace: Trace): Middleware[Any]
Creates a middleware that will annotate log messages that are logged while a request is handled with the names and the values of the specified headers.
-
def
metrics(concurrentRequestsName: String = "http_concurrent_requests_total", totalRequestsName: String = "http_requests_total", requestDurationName: String = "http_request_duration_seconds", requestDurationBoundaries: Boundaries = defaultBoundaries, extraLabels: Set[MetricLabel] = Set.empty)(implicit trace: Trace): Middleware[Any]
Creates middleware that will track metrics.
Creates middleware that will track metrics.
- totalRequestsName
Total HTTP requests metric name.
- requestDurationName
HTTP request duration metric name.
- requestDurationBoundaries
Boundaries for the HTTP request duration metric.
- extraLabels
A set of extra labels all metrics will be tagged with.
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
patch(f: (Response) ⇒ Patch): HandlerAspect[Any, Unit]
Creates a middleware that produces a Patch for the Response
Creates a middleware that produces a Patch for the Response
- Definition Classes
- HandlerAspects
-
def
patchZIO[Env](f: (Response) ⇒ ZIO[Env, Response, Patch]): HandlerAspect[Env, Unit]
Creates a middleware that produces a Patch for the Response effectfully.
Creates a middleware that produces a Patch for the Response effectfully.
- Definition Classes
- HandlerAspects
-
def
redirect(url: URL, isPermanent: Boolean = false): HandlerAspect[Any, Unit]
Creates a middleware that will redirect requests to the specified URL.
Creates a middleware that will redirect requests to the specified URL.
- Definition Classes
- HandlerAspects
-
def
redirectTrailingSlash(isPermanent: Boolean = false): HandlerAspect[Any, Unit]
Creates middleware that will redirect requests with trailing slash to the same path without trailing slash.
Creates middleware that will redirect requests with trailing slash to the same path without trailing slash.
- Definition Classes
- HandlerAspects
-
final
def
removeHeader(name: String): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
final
def
removeHeader(headerType: HeaderType): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
final
def
removeHeaders(headers: Set[String]): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
def
requestLogging(level: (Status) ⇒ LogLevel = (_: Status) => LogLevel.Info, loggedRequestHeaders: Set[HeaderType] = Set.empty, loggedResponseHeaders: Set[HeaderType] = Set.empty, logRequestBody: Boolean = false, logResponseBody: Boolean = false, requestCharset: Charset = StandardCharsets.UTF_8, responseCharset: Charset = StandardCharsets.UTF_8)(implicit trace: Trace): HandlerAspect[Any, Unit]
Creates middleware that will perform request logging.
Creates middleware that will perform request logging.
- Definition Classes
- HandlerAspects
-
def
runAfter[Env](effect: ZIO[Env, Nothing, Any])(implicit trace: Trace): HandlerAspect[Env, Unit]
Creates middleware that will run the specified effect after every request.
Creates middleware that will run the specified effect after every request.
- Definition Classes
- HandlerAspects
-
def
runBefore[Env](effect: ZIO[Env, Nothing, Any])(implicit trace: Trace): HandlerAspect[Env, Unit]
Creates middleware that will run the specified effect before every request.
Creates middleware that will run the specified effect before every request.
- Definition Classes
- HandlerAspects
-
def
serveDirectory(path: Path, docRoot: File)(implicit trace: Trace): Middleware[Any]
Creates a middleware for serving static files from the directory
docRootat the url pathpath.Creates a middleware for serving static files from the directory
docRootat the url pathpath.Example:
val serveDirectory = Middleware.serveDirectory(Path.empty / "assets", new File("/some/local/path"))With this middleware in place, a request to
https://www.domain.com/assets/folder/file1.jpgwould serve the local file/some/local/path/folder/file1.jpg. -
def
serveResources(path: Path)(implicit trace: Trace): Middleware[Any]
Creates a middleware for serving static files from resources at the path
path.Creates a middleware for serving static files from resources at the path
path.Example:
val serveResources = Middleware.serveResources(Path.empty / "assets")With this middleware in place, a request to
https://www.domain.com/assets/folder/file1.jpgwould serve the filesrc/main/resources/folder/file1.jpg. -
final
def
setHeaders(headers: Headers): HandlerAspect[Any, Unit]
- Definition Classes
- HeaderModifier
-
def
signCookies(secret: String): HandlerAspect[Any, Unit]
Creates a middleware for signing cookies
Creates a middleware for signing cookies
- Definition Classes
- HandlerAspects
-
def
status(status: Status): HandlerAspect[Any, Unit]
Creates middleware that will update the status of the response.
Creates middleware that will update the status of the response.
- Definition Classes
- HandlerAspects
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- def timeout(duration: zio.Duration)(implicit trace: Trace): Middleware[Any]
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
updateHeaders(update: (Headers) ⇒ Headers)(implicit trace: Trace): HandlerAspect[Any, Unit]
Creates middleware that will update the headers of the response.
Creates middleware that will update the headers of the response.
- Definition Classes
- HandlerAspects → HeaderModifier
-
def
updateMethod(update: (Method) ⇒ Method): HandlerAspect[Any, Unit]
Creates middleware that will update the method of the request.
Creates middleware that will update the method of the request.
- Definition Classes
- HandlerAspects
-
def
updatePath(update: (Path) ⇒ Path): HandlerAspect[Any, Unit]
Creates middleware that will update the path of the request.
Creates middleware that will update the path of the request.
- Definition Classes
- HandlerAspects
-
def
updateRequest(update: (Request) ⇒ Request): HandlerAspect[Any, Unit]
Creates middleware that will update the request.
Creates middleware that will update the request.
- Definition Classes
- HandlerAspects
-
def
updateRequestZIO[Env](update: (Request) ⇒ ZIO[Env, Response, Request]): HandlerAspect[Env, Unit]
Creates middleware that will update the request effectfully.
Creates middleware that will update the request effectfully.
- Definition Classes
- HandlerAspects
-
def
updateResponse(update: (Response) ⇒ Response): HandlerAspect[Any, Unit]
Creates middleware that will update the response.
Creates middleware that will update the response.
- Definition Classes
- HandlerAspects
-
def
updateResponseZIO[Env](update: (Response) ⇒ ZIO[Env, Nothing, Response]): HandlerAspect[Env, Unit]
Creates middleware that will update the response effectfully.
Creates middleware that will update the response effectfully.
- Definition Classes
- HandlerAspects
-
def
updateURL(update: (URL) ⇒ URL): HandlerAspect[Any, Unit]
Creates middleware that will update the URL of the request.
Creates middleware that will update the URL of the request.
- Definition Classes
- HandlerAspects
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
when[Env](condition: (Request) ⇒ Boolean)(middleware: HandlerAspect[Env, Unit]): HandlerAspect[Env, Unit]
Applies the middleware only if the condition function evaluates to true
Applies the middleware only if the condition function evaluates to true
- Definition Classes
- HandlerAspects
-
def
whenHeader[Env](condition: (Headers) ⇒ Boolean)(middleware: HandlerAspect[Env, Unit]): HandlerAspect[Env, Unit]
Applies the middleware only when the header-based condition evaluates to true.
Applies the middleware only when the header-based condition evaluates to true.
- Definition Classes
- HandlerAspects
-
def
whenResponse(condition: (Response) ⇒ Boolean)(f: (Response) ⇒ Response): HandlerAspect[Any, Unit]
Applies the middleware only if the condition function evaluates to true
Applies the middleware only if the condition function evaluates to true
- Definition Classes
- HandlerAspects
-
def
whenResponseZIO[Env](condition: (Response) ⇒ ZIO[Env, Response, Boolean])(f: (Response) ⇒ ZIO[Env, Response, Response]): HandlerAspect[Env, Unit]
Applies the middleware only if the condition function effectfully evaluates to true
Applies the middleware only if the condition function effectfully evaluates to true
- Definition Classes
- HandlerAspects
-
def
whenZIO[Env](condition: (Request) ⇒ ZIO[Env, Response, Boolean])(middleware: HandlerAspect[Env, Unit]): HandlerAspect[Env, Unit]
Applies the middleware only if the condition function effectfully evaluates to true
Applies the middleware only if the condition function effectfully evaluates to true
- Definition Classes
- HandlerAspects