membership-attribute-service/app/filters/Headers.scala (10 lines of code) (raw):

package filters import play.api.mvc object Headers { implicit class EnrichedHeaders(headers: mvc.Headers) { def forwardedFor = headers.get("X-Forwarded-For") map { _.split(",\\s+").toList } } implicit class EnrichedRequestHeader(header: mvc.RequestHeader) { /** Remote address, taking X-Forwarded-For into consideration */ def realRemoteAddr = header.headers.forwardedFor.flatMap(_.headOption).getOrElse(header.remoteAddress) } }