Class

fm.http.server.HttpServerOptions

ClientIPLookupSpec

Related Doc: package HttpServerOptions

Permalink

final case class ClientIPLookupSpec(headerName: String, requiredHeaderAndValue: Option[(String, String)], valueToUse: ClientIPHeaderValueToUse) extends Product with Serializable

This allows you to override the Request.remoteIp with an IP Address from an HTTP header field

Example:

ClientIPLookupSpec(
  headerName = "X-Client-IP",
  requiredHeaderAndValue = Some(("X-Is-From-CDN", "secret value set by the CDN/Proxy"))
  valueIdx = ClientIPHeaderValueToUse.Last
)

In this case if a request comes in with an "X-Client-IP" value but no "X-Is-From-CDN" header value then the "X-Client-IP" will not be used. If the "X-Client-IP" header does exist and is set to whatever we configured then the "X-Client-IP" will be used.

headerName

The header name to grab the client ip from (e.g. X-Forwarded-For)

requiredHeaderAndValue

An optional header/value pair that must exist in order to look at the headerName

valueToUse

Which value to use when there are multiple values (e.g. X-Forward-For: 1.2.3.4,4.5.6.7)

Linear Supertypes
Serializable, Serializable, Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ClientIPLookupSpec
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ClientIPLookupSpec(headerName: String, requiredHeaderAndValue: Option[(String, String)], valueToUse: ClientIPHeaderValueToUse)

    Permalink

    headerName

    The header name to grab the client ip from (e.g. X-Forwarded-For)

    requiredHeaderAndValue

    An optional header/value pair that must exist in order to look at the headerName

    valueToUse

    Which value to use when there are multiple values (e.g. X-Forward-For: 1.2.3.4,4.5.6.7)

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  7. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  8. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  9. val headerName: String

    Permalink

    The header name to grab the client ip from (e.g.

    The header name to grab the client ip from (e.g. X-Forwarded-For)

  10. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  11. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  12. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  13. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  14. val requiredHeaderAndValue: Option[(String, String)]

    Permalink

    An optional header/value pair that must exist in order to look at the headerName

  15. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  16. val valueToUse: ClientIPHeaderValueToUse

    Permalink

    Which value to use when there are multiple values (e.g.

    Which value to use when there are multiple values (e.g. X-Forward-For: 1.2.3.4,4.5.6.7)

  17. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  19. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped