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
abstract val host: String Request host, useful for virtual hosts routing |
|
abstract val method: HttpMethod Request HTTP method |
|
abstract val port: Int Request port, for example 80 or 443 |
|
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. |
|
abstract val scheme: String Request scheme, for example “http” or “https” |
|
abstract val uri: String URI path with no host, port and no schema specification, but possibly with query |
|
abstract val version: String Protocol version string |
Inheritors
class MutableOriginConnectionPoint : RequestConnectionPoint Represents a RequestConnectionPoint. Every it’s component is mutable so application features could provide them |