package http
Contains standard HTTP constants. For example:
val text = ContentTypes.TEXT val ok = Status.OK val accept = HeaderNames.ACCEPT
- Source
- package.scala
- Alphabetic
- By Inheritance
- http
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- trait AcceptEncoding extends AnyRef
A representation of the Accept-Encoding header
- case class ActionCompositionConfiguration(controllerAnnotationsFirst: Boolean = false, executeActionCreatorActionFirst: Boolean = false, includeWebSocketActions: Boolean = false) extends Product with Serializable
Configuration for action composition.
Configuration for action composition.
- controllerAnnotationsFirst
If annotations put on controllers should be executed before the ones put on actions.
- executeActionCreatorActionFirst
If the action returned by the action creator should be executed before the action composition ones.
- includeWebSocketActions
If WebSocket actions should be included in action composition.
- case class ContentTypeOf[-A](mimeType: Option[String]) extends Product with Serializable
Defines the default content type for type
A
.Defines the default content type for type
A
.- A
the content type
- mimeType
the default content type for
A
, if any
- Annotations
- @implicitNotFound()
- trait ContentTypes extends AnyRef
Defines common HTTP Content-Type header values, according to the current available Codec.
- case class CookiesConfiguration(strict: Boolean = true) extends Product with Serializable
The cookies configuration
The cookies configuration
- strict
Whether strict cookie parsing should be used. If true, will cause the entire cookie header to be discarded if a single cookie is found to be invalid.
- trait DefaultContentTypeOfs extends AnyRef
Contains typeclasses for ContentTypeOf.
- class DefaultFileMimeTypes extends FileMimeTypes
Default implementation of FileMimeTypes.
- class DefaultFileMimeTypesProvider extends Provider[FileMimeTypes]
- Annotations
- @Singleton()
- class DefaultHttpErrorHandler extends HttpErrorHandler
The default HTTP error handler.
The default HTTP error handler.
This class is intended to be extended, allowing users to reuse some of the functionality provided here.
- Annotations
- @Singleton()
- class DefaultHttpFilters extends HttpFilters
A default implementation of HttpFilters that accepts filters as a varargs constructor and exposes them as a filters sequence.
A default implementation of HttpFilters that accepts filters as a varargs constructor and exposes them as a filters sequence. This is available for runtime DI users who don't want to do things in configuration using play.filters.enabled, because they need more fine grained control over the injected components.
For example:
class Filters @Inject()(defaultFilters: EnabledFilters, corsFilter: CORSFilter) extends DefaultHttpFilters(defaultFilters.filters :+ corsFilter: _*)
- class DefaultHttpRequestHandler extends HttpRequestHandler
A base implementation of the HttpRequestHandler that handles Scala actions.
A base implementation of the HttpRequestHandler that handles Scala actions. If you use Java actions in your application, you should override JavaCompatibleHttpRequestHandler; otherwise you can override this for your custom handler.
Technically, this is not the default request handler that Play uses, rather, the JavaCompatibleHttpRequestHandler is the default one, in order to provide support for Java actions.
- trait DefaultWriteables extends LowPriorityWriteables
Default Writeable.
- class EnabledFilters extends HttpFilters
This class provides filters that are "automatically" enabled through
play.filters.enabled
.This class provides filters that are "automatically" enabled through
play.filters.enabled
. A list of default filters are defined in reference.conf.See https://www.playframework.com/documentation/latest/Filters for more information.
- Annotations
- @Singleton()
- case class EncodingPreference(name: String = "*", qValue: Option[BigDecimal] = None) extends Product with Serializable
A representation of an encoding preference as specified in the Accept-Encoding header.
A representation of an encoding preference as specified in the Accept-Encoding header. This contains an encoding name (or *), and an optional q-value.
- trait FileMimeTypes extends AnyRef
Defines behavior for file type mappings.
Defines behavior for file type mappings.
This trait is primarily used with results and assets that send files, for users who want to send a file without having to specify an explicit content type. For example, a user can send a file with ".json":
implicit val fileMimeTypes = ... val file = new File("test.json") Ok.sendFile(file) // <-- uses implicit fileMimeTypes
and have a "json" -> "application/json" mapping done implicitly based off the file extension. The Assets controller handles this mapping automatically.
In a controller, an implicit FileMimeTypes object can either be defined explicitly:
class MyController @Inject()(implicit val fileMimeTypes: FileMimeTypes) extends BaseController { def sendFile() = ... }
or, if play.api.mvc.BaseController is extended, then an implicit fileMimeTypes instance is already made available from play.api.mvc.ControllerComponents, meaning that no explicit import is required:
class MyController @Inject()(val controllerComponents: ControllerComponents) extends BaseController { def sendFile() = ... }
- Annotations
- @implicitNotFound()
- case class FileMimeTypesConfiguration(mimeTypes: Map[String, String] = Map.empty) extends Product with Serializable
Configuration for file MIME types, mapping from extension to content type.
Configuration for file MIME types, mapping from extension to content type.
- mimeTypes
the extension to mime type mapping.
- case class FlashConfiguration(cookieName: String = "PLAY_FLASH", secure: Boolean = false, httpOnly: Boolean = true, domain: Option[String] = None, path: String = "/", sameSite: Option[SameSite] = Some(SameSite.Lax), jwt: JWTConfiguration = JWTConfiguration()) extends Product with Serializable
The flash configuration
The flash configuration
- cookieName
The name of the cookie used to store the session
- secure
Whether the flash cookie should set the secure flag or not
- httpOnly
Whether the HTTP only attribute of the cookie should be set
- domain
The domain to set for the session cookie, if defined
- path
The path for which this cookie is valid
- sameSite
The cookie's SameSite attribute
- jwt
The JWT specific information
- trait HeaderNames extends AnyRef
Defines all standard HTTP headers.
- class HtmlOrJsonHttpErrorHandler extends PreferredMediaTypeHttpErrorHandler
An HttpErrorHandler that uses either HTML or JSON in the response depending on the client's preference.
- sealed trait HttpChunk extends AnyRef
An HTTP chunk.
An HTTP chunk.
May either be a HttpChunk.Chunk containing data, or a HttpChunk.LastChunk, signifying the last chunk in a stream, optionally with trailing headers.
- case class HttpConfiguration(context: String = "/", parser: ParserConfiguration = ParserConfiguration(), actionComposition: ActionCompositionConfiguration = ActionCompositionConfiguration(), cookies: CookiesConfiguration = CookiesConfiguration(), session: SessionConfiguration = SessionConfiguration(), flash: FlashConfiguration = FlashConfiguration(), fileMimeTypes: FileMimeTypesConfiguration = FileMimeTypesConfiguration(), secret: SecretConfiguration = SecretConfiguration()) extends Product with Serializable
HTTP related configuration of a Play application
HTTP related configuration of a Play application
- context
The HTTP context
- parser
The parser configuration
- session
The session configuration
- flash
The flash configuration
- fileMimeTypes
The fileMimeTypes configuration
- sealed trait HttpEntity extends AnyRef
An HTTP entity.
An HTTP entity.
HTTP entities come in three flavors, HttpEntity.Strict, HttpEntity.Streamed and HttpEntity.Chunked.
- case class HttpErrorConfig(showDevErrors: Boolean = false, playEditor: Option[String] = None) extends Product with Serializable
- trait HttpErrorHandler extends AnyRef
Component for handling HTTP errors in Play.
Component for handling HTTP errors in Play.
- Since
2.4.0
- case class HttpErrorInfo(origin: String) extends http.HttpErrorInfo with Product with Serializable
Used as request attribute which gets attached to the request that gets passed to an error handler.
Used as request attribute which gets attached to the request that gets passed to an error handler. Contains additional information useful for handling an error.
- Annotations
- @ApiMayChange()
- trait HttpFilters extends AnyRef
Provides filters to the play.api.http.HttpRequestHandler.
- trait HttpProtocol extends AnyRef
Defines HTTP protocol constants
- trait HttpRequestHandler extends AnyRef
Primary entry point for all HTTP requests on Play applications.
- trait HttpVerbs extends AnyRef
Standard HTTP Verbs
- case class JWTConfiguration(signatureAlgorithm: String = "HS256", expiresAfter: Option[FiniteDuration] = None, clockSkew: FiniteDuration = 30.seconds, dataClaim: String = "data") extends Product with Serializable
The JSON Web Token configuration
The JSON Web Token configuration
- signatureAlgorithm
The signature algorithm used to sign the JWT
- expiresAfter
The period of time after which the JWT expires, if any.
- clockSkew
The amount of clock skew to permit for expiration / not before checks
- dataClaim
The claim key corresponding to the data map passed in by the user
- class JavaCompatibleHttpRequestHandler extends DefaultHttpRequestHandler
A Java compatible HTTP request handler.
A Java compatible HTTP request handler.
If a router routes to Java actions, it will return instances of play.core.j.JavaHandler. This takes an instance of play.core.j.JavaHandlerComponents to supply the necessary infrastructure to invoke a Java action, and returns a new play.api.mvc.Handler that the core of Play knows how to handle.
If your application routes to Java actions, then you must use this request handler as the base class as is or as the base class for your custom HttpRequestHandler.
- class JavaHttpFiltersAdapter extends DefaultHttpFilters
Adapter from the Java HttpFilters to the Scala HttpFilters interface.
- class JavaHttpFiltersDelegate extends http.DefaultHttpFilters
- class JsonHttpErrorHandler extends HttpErrorHandler
An alternative default HTTP error handler which will render errors as JSON messages instead of HTML pages.
An alternative default HTTP error handler which will render errors as JSON messages instead of HTML pages.
In Dev mode, exceptions thrown by the server code will be rendered in JSON messages. In Prod mode, they will not be rendered.
You could override how exceptions are rendered in Dev mode by extending this class and overriding the formatDevServerErrorException method.
- trait LowPriorityWriteables extends AnyRef
Default Writeable with lower priority.
- class MediaRange extends MediaType
A media range as defined by RFC 2616 14.1
- case class MediaType(mediaType: String, mediaSubType: String, parameters: Seq[(String, Option[String])]) extends Product with Serializable
A media type as defined by RFC 2616 3.7.
A media type as defined by RFC 2616 3.7.
- mediaType
The media type
- mediaSubType
The media sub type
- parameters
The parameters
- trait MimeTypes extends AnyRef
Common HTTP MIME types
- class NoHttpFilters extends HttpFilters
A filters provider that provides no filters.
- case class ParserConfiguration(maxMemoryBuffer: Long = 102400, maxDiskBuffer: Long = 10485760, allowEmptyFiles: Boolean = false) extends Product with Serializable
Configuration for body parsers.
Configuration for body parsers.
- maxMemoryBuffer
The maximum size that a request body that should be buffered in memory.
- maxDiskBuffer
The maximum size that a request body should be buffered on disk.
- allowEmptyFiles
If empty file uploads are allowed (no matter if filename or file is empty)
- final class Port extends AnyVal
A port.
A port. This class is defined so that ports can be passed around implicitly.
- class PreferredMediaTypeHttpErrorHandler extends HttpErrorHandler
An HttpErrorHandler that delegates to one of several HttpErrorHandlers based on media type preferences.
An HttpErrorHandler that delegates to one of several HttpErrorHandlers based on media type preferences.
For example, to create an error handler that handles JSON and HTML, with JSON preferred by the app as default:
override lazy val httpErrorHandler = PreferredMediaTypeHttpErrorHandler( "application/json" -> new JsonHttpErrorHandler() "text/html" -> new HtmlHttpErrorHandler(), )
If the client's preferred media range matches multiple media types in the list, then the first match is chosen.
- case class SecretConfiguration(secret: String = "changeme", provider: Option[String] = None) extends Product with Serializable
The application secret.
The application secret. Must be set. A value of "changeme" will cause the application to fail to start in production.
With the Play secret we want to:
1. Encourage the practice of *not* using the same secret in dev and prod. 2. Make it obvious that the secret should be changed. 3. Ensure that in dev mode, the secret stays stable across restarts. 4. Ensure that in dev mode, sessions do not interfere with other applications that may be or have been running on localhost. Eg, if I start Play app 1, and it stores a PLAY_SESSION cookie for localhost:9000, then I stop it, and start Play app 2, when it reads the PLAY_SESSION cookie for localhost:9000, it should not see the session set by Play app 1. This can be achieved by using different secrets for the two, since if they are different, they will simply ignore the session cookie set by the other.
To achieve 1 and 2, we will, in Activator templates, set the default secret to be "changeme". This should make it obvious that the secret needs to be changed and discourage using the same secret in dev and prod.
For safety, if the secret is not set, or if it's changeme, and we are in prod mode, then we will fail fatally. This will further enforce both 1 and 2.
To achieve 3, if in dev or test mode, if the secret is either changeme or not set, we will generate a secret based on the location of application.conf. This should be stable across restarts for a given application.
To achieve 4, using the location of application.conf to generate the secret should ensure this.
Play secret is checked for a minimum length, dependent on the algorithm used to sign the session and flash cookie. If the key has fewer bits then required by the algorithm, then an error is thrown and the configuration is invalid.
- secret
the application secret
- provider
the JCE provider to use. If null, uses the platform default
- case class SessionConfiguration(cookieName: String = "PLAY_SESSION", secure: Boolean = false, maxAge: Option[FiniteDuration] = None, httpOnly: Boolean = true, domain: Option[String] = None, path: String = "/", sameSite: Option[SameSite] = Some(SameSite.Lax), jwt: JWTConfiguration = JWTConfiguration()) extends Product with Serializable
The session configuration
The session configuration
- cookieName
The name of the cookie used to store the session
- secure
Whether the session cookie should set the secure flag or not
- maxAge
The max age of the session, none, use "session" sessions
- httpOnly
Whether the HTTP only attribute of the cookie should be set
- domain
The domain to set for the session cookie, if defined
- path
The path for which this cookie is valid
- sameSite
The cookie's SameSite attribute
- jwt
The JWT specific information
- trait Status extends AnyRef
Defines all standard HTTP status codes.
- class Writeable[-A] extends AnyRef
Transform a value of type A to a Byte Array.
Transform a value of type A to a Byte Array.
- A
the content type
- Annotations
- @implicitNotFound()
Value Members
- val dateFormat: DateTimeFormatter
HTTP date formatter, compliant to RFC 1123
- object AcceptEncoding
- object ActionCreator
- object ContentEncoding
- object ContentTypeOf extends DefaultContentTypeOfs with Serializable
Default Content-Type typeclasses.
- object ContentTypes extends ContentTypes
Defines common HTTP Content-Type header values, according to the current available Codec.
- object DefaultHttpErrorHandler extends DefaultHttpErrorHandler
A fallback default HTTP error handler that can be used when there's no application available.
A fallback default HTTP error handler that can be used when there's no application available.
Note: this HttpErrorHandler uses the default
HttpErrorConfig
, which does notshowDevErrors
. It is largely here to preserve binary compatibility, but should be overridden with an injected HttpErrorHandler. - object DevHttpErrorHandler extends DefaultHttpErrorHandler
A default HTTP error handler that can be used when there's no application available.
A default HTTP error handler that can be used when there's no application available.
Note: this HttpErrorHandler should ONLY be used in DEV or TEST. The way this displays errors to the user is generally not suitable for a production environment.
- object EncodingPreference extends Serializable
- object HeaderNames extends HeaderNames
Defines all standard HTTP headers.
- object HttpChunk
- object HttpConfiguration extends Serializable
- object HttpEntity
- object HttpErrorHandler
- object HttpErrorHandlerExceptions
Extracted so the Java default error handler can reuse this functionality
- object HttpFilters
- object HttpProtocol extends HttpProtocol
Defines HTTP protocol constants
- object HttpRequestHandler
- object HttpVerbs extends HttpVerbs
Standard HTTP Verbs
- object JWTConfigurationParser
- object MediaRange extends Serializable
- object MediaType extends Serializable
- object MimeTypes extends MimeTypes
Common HTTP MIME types
- object NoHttpFilters extends NoHttpFilters
- object NotImplementedHttpRequestHandler extends HttpRequestHandler
Implementation of a [HttpRequestHandler] that always returns NotImplemented results
- object PreferredMediaTypeHttpErrorHandler
- object Status extends Status
Defines all standard HTTP status codes, with additional helpers for determining the type of status.
- object Writeable extends DefaultWriteables
Helper utilities for
Writeable
.