RequestConnectionPoint

interface RequestConnectionPoint

Represents request address information is used to make a call. There are at least two possible instances: “local” is how we see request at the server application and “actual” is what we can recover from proxy provided headers.

Properties

host

abstract val host: String

Request host, useful for virtual hosts routing

method

abstract val method: HttpMethod

Request HTTP method

port

abstract val port: Int

Request port, for example 80 or 443

remoteHost

abstract val remoteHost: String

Client address or host name (generally not resolved to name for performance reasons). For io.ktor.application.ApplicationRequest.local instance could point to a proxy our application running behind. NEVER use it for user authentication as it can be easily falsified (user can simply set some HTTP headers such as X-Forwarded-Host so you should NEVER rely on it in any security checks. If you are going to use it to create a back-connection please do it with care as an offender can easily use it to force you to connect to some host that is not intended to be connected to so that may cause serious consequences.

scheme

abstract val scheme: String

Request scheme, for example “http” or “https”

uri

abstract val uri: String

URI path with no host, port and no schema specification, but possibly with query

version

abstract val version: String

Protocol version string

Inheritors

MutableOriginConnectionPoint

class MutableOriginConnectionPoint : RequestConnectionPoint

Represents a RequestConnectionPoint. Every it’s component is mutable so application features could provide them